Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk melaksanakan tugas berjadual dalam PHP dan aplikasinya
Dengan perkembangan Internet dan kemajuan teknologi, fungsi laman web menjadi semakin berkuasa Untuk beberapa tugas yang perlu dilakukan secara kerap, seperti menjadualkan e-mel, membersihkan log, dan lain-lain, adalah perlu. untuk menggunakan tugas berjadual untuk mengautomasikan tugasan ini. Sebagai bahasa skrip yang berjalan di bahagian pelayan, PHP sering digunakan untuk pembangunan web dan juga boleh melaksanakan tugas berjadual. Artikel ini akan memperkenalkan kaedah dan aplikasi PHP untuk melaksanakan tugas berjadual.
1. Kaedah pelaksanaan
PHP boleh melaksanakan tugas berjadual melalui perkhidmatan Cron yang disertakan dengan sistem Linux atau dengan menggunakan perpustakaan kelas pihak ketiga di bawah kami akan memperkenalkan satu pelaksanaan dan penggunaannya oleh seorang.
Perkhidmatan Cron ialah perkhidmatan tugas berjadual yang disertakan dengan sistem Linux Ia boleh melaksanakan beberapa arahan atau skrip tertentu dengan kerap. Untuk menggunakan perkhidmatan Cron, anda perlu mengedit fail konfigurasi pemasa.
Masukkan perintah berikut dalam terminal untuk mengedit fail konfigurasi:
crontab -e
Selepas pengeditan selesai, simpan dan keluar Perkhidmatan Cron akan melaksanakan arahan atau skrip yang sepadan mengikut tugasan yang dijadualkan dalam fail konfigurasi.
Berikut ialah format fail konfigurasi pemasa perkhidmatan Cron:
* * * * * command
Pemasa perkhidmatan Cron dibahagikan kepada lima bahagian, mewakili minit, jam, hari, bulan dan minggu serta nilai Julat adalah 0-59, 0-23, 1-31, 1-12, 0-7 (0 dan 7 kedua-duanya adalah hari Ahad). Selain lima bahagian ini, terdapat juga bahagian arahan, yang mewakili arahan atau skrip yang perlu dilaksanakan.
Sebagai contoh, untuk menjalankan skrip myscript.sh pada pukul 11 malam setiap malam, kita boleh mengedit fail konfigurasi pemasa seperti ini:
0 23 * * * /path/to/myscript.sh
Pemasa ini bermaksud untuk melaksanakan myscript pada pukul 11 malam setiap malam skrip .sh.
Selain menggunakan perkhidmatan Cron, kami juga boleh menggunakan perpustakaan kelas pihak ketiga untuk melaksanakan tugas yang dijadualkan. Pustaka kelas ini biasanya menyediakan fungsi yang lebih kaya, seperti penjadualan tugas, kawalan konkurensi, dsb.
Berikut ialah pengenalan kepada dua perpustakaan pihak ketiga yang biasa digunakan.
(1) Cron
Cron ialah perpustakaan tugas berjadual PHP yang menyediakan fungsi penjadualan tugas yang mudah. Tugas boleh menjadi pernyataan SQL, kaedah atau fungsi tanpa nama. Pustaka kelas Cron boleh melaksanakan tetapan tugas berjadual dan fungsi pengelogan dengan mudah.
Langkah-langkah untuk menggunakan perpustakaan kelas Cron adalah seperti berikut:
① Pemasangan
Pustaka kelas Cron boleh dipasang melalui Composer, buka terminal dan masukkan arahan berikut :
composer require dragonmantank/cron-expression
②Menulis kod
Seterusnya, kami mencipta fail test.php untuk menunjukkan contoh penggunaan perpustakaan kelas Cron. Tugas kami ialah mengeluarkan satu baris "Hello World!"
<?php require_once './vendor/autoload.php'; $cron = new CronCronExpression('* * * * *'); // 每分钟运行一次 if ($cron->isDue()) { echo 'Hello World!' . PHP_EOL; }
Kod di atas mula-mula memperkenalkan pustaka kelas Cron melalui Komposer, dan kemudian mencipta objek CronExpression Masa tugasan yang dijadualkan dihantar ke objek yang di instantiated melalui rentetan, seperti ' ' mewakili pelaksanaan tugasan setiap minit Selain itu, terdapat juga '0 1 ' yang mewakili pelaksanaan tugas pada jam 1 pagi setiap hari.
Kaedah isDue() menyemak sama ada tugasan yang kami tetapkan perlu dilaksanakan. (2) PHP Task SchedulerSelain perpustakaan kelas Cron, terdapat juga penjadual tugas yang sesuai untuk PHP - PHP Task Scheduler (PHP Task Scheduler), yang boleh Menjalankan CLI ( Command Line Interface) arahan, laksanakan skrip PHP, panggil arahan Shell atau API, dsb. Penjadual tugas PHP sangat mudah digunakan Anda boleh menetapkan masa pelaksanaan tugas, kaedah panggilan, dll mengikut keperluan anda. Langkah-langkah untuk menggunakan PHP Task Scheduler adalah seperti berikut: ① InstallationPHP Task Scheduler boleh dipasang melalui Composer, buka terminal dan masukkan arahan berikut:composer require lizhichao/task-scheduler② Menulis kod Juga mencipta fail test.php untuk menunjukkan cara untuk perancah dan menulis penjadual tugas PHP.
<?php require_once './vendor/autoload.php'; use OvertrueEasySchedulingSchedule; $schedule = new Schedule; $schedule -> exec('echo "Hello World!"') -> everyMinute();Kod di atas memperkenalkan pustaka kelas penjadual tugas PHP, melancarkan pelan tugasan, menggunakan kaedah exec untuk menambah tugasan dan menjalankannya setiap minit. 2. Senario aplikasi Fungsi tugas berjadual PHP boleh digunakan secara meluas dalam pengendalian tapak web dan pengurusan penyelenggaraan dan pelaksanaan tugas latar belakang Di bawah kami akan memperkenalkan beberapa senario aplikasi biasa.
0 0 * * * rm /path/to/log/*.logMenggunakan penjadual tugas PHP untuk melaksanakan:
$schedule -> exec('rm /path/to/log/*.log') -> daily();Kod di atas merealisasikan pembersihan laluan /path/to/log pada 0 am setiap hari Semua fail .log.
0 8 * * * php /path/to/send_email.phpAntaranya, send_email.php ialah skrip kami untuk menghantar e-mel secara berkala. Gunakan perpustakaan kelas Cron untuk melaksanakan:
$cron = new CronExpression('0 8 * * *'); if ($cron->isDue()) { // your email sending code }Gunakan penjadual tugas PHP untuk melaksanakan:
$schedule->exec('php /path/to/send_email.php')->dailyAt('08:00');Kod di atas melaksanakan tugas menghantar e-mel pada pukul 8 setiap pagi. 3. RingkasanArtikel ini memperkenalkan kaedah dan senario aplikasi menggunakan perkhidmatan Cron dan perpustakaan kelas pihak ketiga untuk melaksanakan tugas berjadual PHP. Tugas berjadual boleh membantu kami menjimatkan banyak kerja berulang dan meningkatkan kecekapan kerja. Dalam proses menggunakan tugas berjadual, kita perlu memberi perhatian kepada isu seperti tetapan masa tugas dan rekod log pelaksanaan tugas.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan tugas berjadual dalam PHP dan aplikasinya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!