Memandangkan aplikasi web terus berkembang, kami perlu mengendalikan sejumlah besar tugas untuk mengekalkan kestabilan dan ketersediaan aplikasi. Menggunakan sistem beratur adalah satu penyelesaian. ThinkPHP6 menyediakan sistem baris gilir terbina dalam untuk mengurus tugas. Walau bagaimanapun, pengendalian sebilangan besar tugas memerlukan pengurusan baris gilir yang lebih baik, yang boleh dicapai menggunakan Penyelia.
Artikel ini akan memperkenalkan cara menggunakan Supervisor untuk mengurus baris gilir ThinkPHP6. Sebelum itu, kita perlu memahami beberapa konsep asas:
Setelah memahami konsep asas ini, kami akan memperkenalkan cara menggunakan Supervisor untuk menguruskan baris gilir ThinkPHP6.
Langkah 1: Pasang Penyelia
Untuk menggunakan Penyelia bagi pengurusan baris gilir, kita perlu memasang Penyelia terlebih dahulu. Pada sistem Ubuntu, anda boleh menggunakan arahan berikut untuk memasang:
sudo apt-get install supervisor
Pada sistem CentOS, anda boleh menggunakan arahan berikut untuk memasang:
sudo yum install supervisor
Selepas pemasangan selesai, anda boleh menggunakan arahan berikut untuk memulakan Penyelia:
sudo systemctl start supervisor
Pada masa yang sama, kita juga perlu mencipta fail konfigurasi baharu dalam fail konfigurasi/etc/supervisor/conf.d/
untuk mengurus pekerja baris gilir. Kami boleh mencipta fail dengan sebarang nama dalam direktori ini, seperti laravel-worker.conf
. Seterusnya, kami akan membincangkan cara mengedit fail ini.
Langkah 2: Edit fail konfigurasi Penyelia
Edit fail konfigurasi Penyelia dan tambah pekerja ke senarai pantauan Penyelia. Kita boleh menggunakan arahan berikut untuk mengedit fail konfigurasi yang baru kita buat:
sudo nano /etc/supervisor/conf.d/laravel-worker.conf
Tambah konfigurasi berikut pada fail:
[program:laravel-worker] process_name=%(program_name)s_%(process_num)02d directory=/var/www/laravel #修改为你的项目目录 command=php /var/www/laravel/artisan queue:work autostart=true autorestart=true user=www-data #修改为你的Web服务器运行用户 numprocs=8 #工作者数量,此处建议设置为CPU核心数2-4倍 redirect_stderr=true stdout_logfile=/var/www/laravel/storage/logs/worker.log #修改为你的日志文件位置
Selepas menambah konfigurasi di atas pada fail, kita boleh menggunakan arahan berikut untuk Muat Semula fail konfigurasi Penyelia:
sudo supervisorctl reread sudo supervisorctl update
Dengan cara ini Penyelia boleh memulakan pekerja baris gilir kami dan menguruskan mereka. Kita boleh menggunakan arahan berikut untuk melihat semua proses yang dimulakan oleh Penyelia:
sudo supervisorctl status
Langkah 3: Uji tugas giliran
Kini, kami telah berjaya memulakan pekerja baris gilir menggunakan Penyelia. Seterusnya, kita perlu menguji tugas giliran. Mula-mula, pastikan anda mempunyai baris gilir dikonfigurasikan dalam aplikasi anda.
Tambahkan tugas ujian di suatu tempat dan biarkan baris gilir mula berfungsi. Contohnya, buat tugas menghantar E-mel:
<?php namespace appqueue; use thinkqueueJob; class SendEmail { public $user; public function __construct($user) { $this->user = $user; } public function fire(Job $job, $data) { //发送Email的代码 if (Math.random() < 0.5) { // 处理失败 $job->release(5);// 5秒后重试 } else { // 成功处理 $job->delete(); } } }
Tambah kaedah dalam pengawal dan tambah tugas:
<?php namespace appcontroller; use thinkController; use thinkqueueQueue; class Email extends Controller { public function index() { $user = ['email' => 'test@test.com', 'name' => 'test']; $job = new ppqueueSendEmail($user); app('queue')->push($job); } }
Dengan cara ini, kita boleh berjaya menggunakan Supervisor untuk mengurus baris gilir ThinkPHP6 . Jika anda ingin mengetahui lebih lanjut mengenai sistem baris gilir, anda boleh membaca dokumentasi rasmi. Saya harap artikel ini dapat membantu anda menjalankan aplikasi web anda dengan jayanya!
Atas ialah kandungan terperinci Bagaimana untuk menggunakan Supervisor untuk mengurus baris gilir ThinkPHP6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!