


Cara menggunakan skrip Redis dan Shell untuk membangunkan fungsi tugas berjadual
Cara menggunakan skrip Redis dan Shell untuk membangunkan fungsi tugas berjadual
Pengenalan:
Semasa proses pembangunan, kita sering menghadapi situasi di mana kita perlu melakukan tugas tertentu dengan kerap, seperti kerap membersihkan log, kerap membuat sandaran data, dll. Artikel ini akan memperkenalkan cara menggunakan skrip Redis dan Shell untuk melaksanakan fungsi tugas berjadual dan menyediakan contoh kod khusus.
1. Redis
Redis ialah sistem storan nilai kunci yang cekap yang menyokong pelbagai struktur data, seperti rentetan, senarai, jadual cincang, dsb. Apabila melaksanakan fungsi tugas berjadual, kita boleh menggunakan struktur data "pengumpulan tersusun" Redis dan mekanisme "masa tamat tempoh" untuk mencapainya.
- Buat tugas berjadual
Pertama, kita perlu menambah tugasan yang perlu dilaksanakan pada koleksi Redis yang dipesan. Kod khusus adalah seperti berikut:
redis-cli zadd tasks <timestamp> <task>
Antaranya, <timestamp>
mewakili masa pelaksanaan tugasan, yang boleh diwakili oleh Unix timestamp <task>; code> mewakili pengecam unik tugas , yang boleh menjadi nama tugas atau pengecam lain.
<timestamp>
代表任务的执行时间,可以使用Unix时间戳表示;<task>
代表任务的唯一标识,可以是任务的名称或其他标识符。
示例代码:
redis-cli zadd tasks 1627293600 task1 redis-cli zadd tasks 1627297200 task2 redis-cli zadd tasks 1627300800 task3
- 监听定时任务
接下来,我们需要编写一个脚本来监听Redis中的定时任务,并在任务执行时间到达时执行相应的操作。代码如下:
#!/bin/bash while true; do current_time=$(date +%s) min_time=$(redis-cli zrange tasks 0 0 withscores | cut -d" " -f2) if [ "$min_time" != "" ] && [ "$min_time" -lt "$current_time" ]; then min_task=$(redis-cli zrange tasks 0 0 withscores | cut -d" " -f1) echo "Executing task: $min_task" # 执行任务的操作 # ... redis-cli zrem tasks $min_task fi sleep 1 done
在以上代码中,我们通过循环不断检查Redis中最早的任务是否到达执行时间。如果是,则执行任务,并从有序集合中删除该任务。
二、Shell脚本
在实际应用中,我们可能会遇到一些需要在指定时间执行的任务,比如在每天的凌晨执行备份操作。这时,我们可以结合Shell脚本和crontab来实现定时任务的功能。
- 创建Shell脚本
首先,我们创建一个执行具体任务的Shell脚本。例如,我们要实现每天凌晨3点执行备份操作,可以创建一个名为backup.sh
的脚本文件。具体代码如下:
#!/bin/bash # 备份操作 # ... echo "Backup completed at $(date)"
- 编辑crontab配置
接下来,我们需要编辑crontab配置文件,添加对应的定时任务。具体步骤如下:
- 在终端中输入
crontab -e
命令,打开crontab配置文件; - 添加以下一行代码,并保存退出:
0 3 * * * /path/to/backup.sh
其中,0 3 * * *
代表定时任务的执行时间,表示每天凌晨3点执行;/path/to/backup.sh
- Mendengar tugasan yang dijadualkan
Seterusnya, kita perlu menulis skrip untuk memantau tugasan yang dijadualkan dalam Redis dan melaksanakan operasi yang sepadan apabila masa pelaksanaan tugas tiba. Kodnya adalah seperti berikut:
crontab -l
crontab -e
Dalam kod di atas, kami sentiasa menyemak sama ada tugas terawal dalam Redis mencapai masa pelaksanaan melalui gelung. Jika ya, laksanakan tugasan dan keluarkannya daripada set yang diisih.
2. Skrip Shell
Dalam aplikasi praktikal, kami mungkin menghadapi beberapa tugas yang perlu dilakukan pada masa yang ditetapkan, seperti melakukan operasi sandaran pada awal pagi setiap hari. Pada masa ini, kita boleh menggabungkan skrip shell dan crontab untuk melaksanakan fungsi tugas yang dijadualkan.backup.sh
. Kod khusus adalah seperti berikut: 🎜🎜rrreee- 🎜Edit konfigurasi crontab🎜Seterusnya, kita perlu mengedit fail konfigurasi crontab dan menambah tugasan berjadual yang sepadan. Langkah-langkah khusus adalah seperti berikut: 🎜🎜
- 🎜Masukkan perintah
crontab -e
dalam terminal untuk membuka fail konfigurasi crontab 🎜🎜Tambah baris kod berikut, simpan dan keluar: 🎜 0 3 * * *
mewakili masa pelaksanaan tugas yang dijadualkan, yang bermaksud ia akan dilaksanakan pada pukul 3 pagi setiap hari; .sh mewakili laluan pelaksanaan khusus skrip Shell. 🎜🎜🎜Berkesan dan lihat tugas berjadual🎜Selepas melengkapkan langkah di atas, tugas yang dijadualkan akan berkuat kuasa secara automatik. Kami boleh melihat konfigurasi tugas berjadual semasa melalui arahan berikut: 🎜🎜rrreee🎜 Jika anda perlu membatalkan tugas yang dijadualkan, anda boleh menggunakan arahan berikut: 🎜rrreee🎜 Kemudian padam konfigurasi tugas berjadual yang sepadan, simpan dan keluar. 🎜🎜Ringkasan: 🎜Artikel ini memperkenalkan cara menggunakan skrip Redis dan Shell untuk membangunkan fungsi tugas berjadual. Melalui ciri pengumpulan yang dipesan dan masa tamat tempoh Redis, kami boleh mengurus dan memantau tugas yang dijadualkan dengan mudah. Pada masa yang sama, dengan menggabungkan skrip shell dan crontab, kami juga boleh melaksanakan fungsi tugas berjadual yang lebih kompleks. Saya harap artikel ini dapat membantu anda semasa membangunkan tugasan yang dijadualkan. 🎜Atas ialah kandungan terperinci Cara menggunakan skrip Redis dan Shell untuk membangunkan fungsi tugas berjadual. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

1. Mulakan menu [Start], masukkan [cmd], klik kanan [Command Prompt], dan pilih Run as [Administrator]. 2. Masukkan arahan berikut mengikut turutan (salin dan tampal dengan teliti): SCconfigwuauservstart=auto, tekan Enter SCconfigbitsstart=auto, tekan Enter SCconfigcryptsvcstart=auto, tekan Enter SCconfigtrustedinstallerstart=auto, tekan Enter SCconfigwuauservtype=share, tekan Enter netstopwuauserv , tekan enter netstopcryptS

Strategi caching dalam GolangAPI boleh meningkatkan prestasi dan mengurangkan beban pelayan Strategi yang biasa digunakan ialah: LRU, LFU, FIFO dan TTL. Teknik pengoptimuman termasuk memilih storan cache yang sesuai, caching hierarki, pengurusan ketidaksahihan dan pemantauan dan penalaan. Dalam kes praktikal, cache LRU digunakan untuk mengoptimumkan API untuk mendapatkan maklumat pengguna daripada pangkalan data Data boleh diambil dengan cepat daripada cache Jika tidak, cache boleh dikemas kini selepas mendapatkannya daripada pangkalan data.

Dalam pembangunan PHP, mekanisme caching meningkatkan prestasi dengan menyimpan sementara data yang kerap diakses dalam memori atau cakera, dengan itu mengurangkan bilangan akses pangkalan data. Jenis cache terutamanya termasuk memori, fail dan cache pangkalan data. Caching boleh dilaksanakan dalam PHP menggunakan fungsi terbina dalam atau perpustakaan pihak ketiga, seperti cache_get() dan Memcache. Aplikasi praktikal biasa termasuk caching hasil pertanyaan pangkalan data untuk mengoptimumkan prestasi pertanyaan dan caching halaman output untuk mempercepatkan pemaparan. Mekanisme caching berkesan meningkatkan kelajuan tindak balas laman web, meningkatkan pengalaman pengguna dan mengurangkan beban pelayan.

Menggunakan cache Redis boleh mengoptimumkan prestasi halaman tatasusunan PHP. Ini boleh dicapai melalui langkah berikut: Pasang klien Redis. Sambung ke pelayan Redis. Cipta data cache dan simpan setiap halaman data ke dalam cincangan Redis dengan kunci "halaman:{page_number}". Dapatkan data daripada cache dan elakkan operasi mahal pada tatasusunan besar.

Mula-mula anda perlu menetapkan bahasa sistem kepada paparan Bahasa Cina Mudah dan mulakan semula. Sudah tentu, jika anda telah menukar bahasa paparan kepada Bahasa Cina Ringkas sebelum ini, anda boleh melangkau langkah ini sahaja. Seterusnya, mula mengendalikan pendaftaran, regedit.exe, navigasi terus ke HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNlsLanguage dalam bar navigasi kiri atau bar alamat atas, dan kemudian ubah suai nilai kunci InstallLanguage dan nilai kunci Lalai kepada 0804 (jika anda ingin menukarnya ke Bahasa Inggeris en- kami, anda perlu Mula-mula tetapkan bahasa paparan sistem kepada en-us, mulakan semula sistem dan kemudian tukar semuanya kepada 0409) Anda mesti memulakan semula sistem pada ketika ini.

Perbezaan utama antara fungsi PHP dan fungsi Shell ialah keselamatan (fungsi PHP lebih selamat), kebolehpercayaan (Fungsi Shell berbeza mengikut sistem pengendalian), kefungsian (Fungsi Shell lebih berkuasa tetapi terhad oleh shell), dan prestasi (fungsi PHP biasanya lebih cepat) dan kerumitan (Fungsi Shell lebih kompleks). Kedua-duanya digunakan untuk sistem fail, proses dan operasi perintah, tetapi fungsi PHP terbina dalam, manakala fungsi Shell dipanggil melalui shell luaran. Oleh itu, dalam senario muat turun fail pelayan, fungsi file_put_contents() adalah lebih selamat, manakala arahan wget lebih fleksibel.

1. Mula-mula, klik dua kali ikon [PC ini] pada desktop untuk membukanya. 2. Kemudian klik dua kali butang tetikus kiri untuk memasuki [pemacu C]. 3. Kemudian cari folder [windows] dalam pemacu C dan klik dua kali untuk masuk. 4. Selepas memasukkan folder [windows], cari folder [SoftwareDistribution]. 5. Selepas masuk, cari folder [muat turun], yang mengandungi semua fail muat turun dan kemas kini win11. 6. Jika kita ingin memadam fail-fail ini, hanya padamkannya terus dalam folder ini.

Redis ialah cache nilai kunci berprestasi tinggi. Sambungan PHPRedis menyediakan API untuk berinteraksi dengan pelayan Redis. Gunakan langkah berikut untuk menyambung ke Redis, menyimpan dan mendapatkan semula data: Sambung: Gunakan kelas Redis untuk menyambung ke pelayan. Penyimpanan: Gunakan kaedah yang ditetapkan untuk menetapkan pasangan nilai kunci. Retrieval: Gunakan kaedah get untuk mendapatkan nilai kunci.
