Dengan perkembangan Internet, semakin banyak aplikasi perlu melaksanakan tugas berjadual, seperti tolak mesej, penghantaran e-mel biasa, pembersihan data, dsb. Sebagai tindak balas kepada keperluan ini, rangka kerja Yii menyediakan sokongan tugas berjadual yang lengkap Artikel ini akan memperkenalkan cara menggunakan rangka kerja Yii untuk membangunkan aplikasi tugas berjadual.
1. Pengenalan kepada rangka kerja Yii
Yii (disebut [yiː], bermaksud "Yes It Is!") ialah rangka kerja PHP berprestasi tinggi berdasarkan MVC (Model-View -Controller) pembangunan corak reka bentuk. Rangka kerja Yii mempunyai kelebihan kesederhanaan, kecekapan, keselamatan dan kebolehskalaan, dan pada masa ini merupakan salah satu rangka kerja PHP yang paling popular.
Rangka kerja Yii menyediakan pelbagai komponen dan alatan yang boleh digunakan untuk membina pelbagai jenis aplikasi. Antaranya, komponen tugas berjadual rangka kerja Yii boleh membantu pembangun melaksanakan pelbagai tugas berjadual, seperti sandaran berjadual, pembersihan berjadual, penghantaran e-mel berjadual, dsb.
2. Komponen tugas berjadual rangka kerja Yii
Komponen tugas berjadual rangka kerja Yii adalah berdasarkan sistem CronTab ialah penjadual tugas berasaskan masa yang membolehkan pengguna menjalankan pada masa yang ditetapkan. Komponen tugas berjadual rangka kerja Yii menyokong sintaks yang serupa dengan CronTab, yang boleh digunakan untuk mentakrifkan pelbagai tugas berjadual.
Dalam rangka kerja Yii, anda boleh mendapatkan contoh komponen tugas berjadual melalui kod berikut:
$task = Yii::$app->task;
Melalui kod di atas, pembangun boleh mengakses komponen tugas berjadual rangka kerja Yii. Seterusnya, kami akan memperkenalkan cara menggunakan komponen tugas berjadual untuk menulis aplikasi tugas berjadual.
3. Contoh aplikasi tugas berjadual rangka kerja Yii
Seterusnya, kami akan menggunakan contoh untuk menunjukkan cara menggunakan rangka kerja Yii untuk membangunkan aplikasi tugas berjadual. Aplikasi ini digunakan terutamanya untuk membersihkan data yang telah tamat tempoh dengan kerap.
Pertama, kita perlu mencipta aplikasi Yii. Anda boleh mencipta aplikasi Yii asas melalui arahan berikut:
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
Arahan ini akan mencipta aplikasi berdasarkan rangka kerja Yii Anda boleh membuka http://localhost/basic dalam pelayar untuk melihat aplikasi .
Seterusnya, kita perlu menambah tugasan yang dijadualkan. Anda boleh mengedit fail config/console.php aplikasi Yii dan menambah kod berikut:
return [ // ... 'components' => [ // ... 'task' => [ 'class' => 'yiiconsolewidgetsSchedule', 'tasks' => [ // 每天凌晨2点清理1个月前的数据 [ 'pattern' => '0 2 * * *', 'route' => ['clean', '-m1'], ], ], ], ], // ... ];
Dalam kod di atas, kami menentukan tugas berjadual yang akan dijalankan pada pukul 2 pagi setiap hari dan membersihkan 1 bulan data yang lalu. Tugasan ini dilaksanakan melalui komponen tugas berjadual rangka kerja Yii, yang ditakrifkan berdasarkan sintaks CronTab.
Seterusnya, kita perlu menentukan arahan untuk membersihkan data. Anda boleh menambah kod berikut pada fail console/controllers/TaskController.php:
<?php namespace consolecontrollers; use Yii; use yiiconsoleController; class TaskController extends Controller { public function actionClean($m = 1) { $targetTime = strtotime("-{$m} months"); $query = Todo::find()->where(['<', 'created_at', $targetTime]); $count = $query->count(); $query->delete(); Yii::info("Cleaned up {$count} expired items.", 'task'); } }
Dalam kod di atas, kami mentakrifkan tindakan bersih, yang akan memadamkan semua data tamat tempoh 1 bulan yang lalu. Dalam arahan ini, kami menggunakan pembina pertanyaan rangka kerja Yii untuk melaksanakan operasi pangkalan data, dan juga menggunakan komponen log yang disediakan oleh rangka kerja Yii untuk merekodkan hasil pembersihan data.
Akhir sekali, kita perlu menjalankan tugas yang dijadualkan. Anda boleh memulakan aplikasi konsol Yii melalui arahan berikut:
php yii scheduled/run
Arahan ini akan memulakan aplikasi konsol Yii dan menjalankan tugas yang dijadualkan. Semasa proses berjalan, sistem akan menentukan sama ada tugasan perlu dilaksanakan berdasarkan sintaks CronTab Jika tugasan perlu dilaksanakan, arahan yang ditentukan akan dipanggil untuk menyelesaikan tugas.
4. Ringkasan
Artikel ini memperkenalkan cara menggunakan rangka kerja Yii untuk membangunkan aplikasi tugas berjadual. Melalui komponen tugas berjadual rangka kerja Yii, pembangun boleh melaksanakan fungsi tugas berjadual dengan mudah, dan pada masa yang sama, mereka juga boleh menulis pelbagai arahan tugas berjadual berdasarkan fungsi berkuasa rangka kerja Yii.
Ringkasnya, jika anda perlu menulis aplikasi tugas berjadual, anda mungkin ingin mempertimbangkan untuk menggunakan rangka kerja Yii, saya percaya ia akan membawa anda pengalaman pembangunan yang lebih baik.
Atas ialah kandungan terperinci Membangunkan aplikasi tugas berjadual menggunakan rangka kerja Yii. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!