Jadual Kandungan
Apakah itu Laravel Queues?
Menggunakan Baris Gilir Laravel
Langkah Satu: Konfigurasi Pemacu Gilir
Langkah 2: Buat kelas tugas giliran
Langkah 3: Tolak tugas ke dalam baris gilir
Langkah 4 : Laksanakan tugasan gilir
Gunakan Penyelia untuk mengurus tugas tak segerak
Langkah 1: Pasang Supervisor
Langkah 2: Buat fail konfigurasi Supervisor
Langkah 3: Muat Semula Penyelia
Langkah 4: Lihat log Penyelia
Kesimpulan
Rumah rangka kerja php Laravel Pembangunan Laravel: Bagaimana untuk mengurus tugas tak segerak menggunakan Baris Gilir dan Penyelia Laravel?

Pembangunan Laravel: Bagaimana untuk mengurus tugas tak segerak menggunakan Baris Gilir dan Penyelia Laravel?

Jun 13, 2023 pm 04:04 PM
supervisor Tugas Asynchronous laravel queues

Pembangunan Laravel: Bagaimana untuk menggunakan Barisan Laravel dan Penyelia untuk mengurus tugas tak segerak?

Dalam aplikasi web moden, tugas tak segerak telah menjadi bahagian penting dalam perniagaan harian. Tugas tak segerak boleh meningkatkan masa tindak balas aplikasi, mengoptimumkan pengalaman pengguna dan meningkatkan kebolehskalaan aplikasi. Laravel Queues ialah alat berkuasa yang disediakan oleh rangka kerja Laravel untuk mengendalikan tugas tak segerak dan baris gilir mesej. Artikel ini akan memperkenalkan konsep dan penggunaan Laravel Queues, dan menggabungkannya dengan Penyelia untuk mengurus tugas tak segerak.

Apakah itu Laravel Queues?

Laravel Queues ialah kaedah untuk mengendalikan tugas tak segerak dan baris gilir mesej. Laravel Queues membolehkan anda meletakkan tugas yang memakan masa ke dalam baris gilir tanpa menjejaskan masa tindak balas permintaan web anda. Contohnya, menghantar e-mel, memproses video atau menjana PDF semuanya adalah operasi yang memakan masa dan menggunakan baris gilir untuk meletakkannya dalam pemprosesan latar belakang boleh menjadikan aplikasi anda lebih cekap dan responsif.

Laravel Queues menyokong berbilang teknologi bahagian belakang seperti Pangkalan Data, Redis, Beanstalkd dan Amazon SQS melalui beberapa pemacu baris gilir terbina dalam. Ini membolehkan pembangun menggunakan teknologi baris gilir pilihan mereka untuk mengendalikan tugas tak segerak.

Menggunakan Baris Gilir Laravel

Di bawah ini kami akan memperkenalkan langkah demi langkah cara menggunakan Baris Gilir Laravel untuk mengendalikan tugas tak segerak.

Langkah Satu: Konfigurasi Pemacu Gilir

Terdapat fail dipanggil queue.php dalam fail konfigurasi Laravel yang boleh anda gunakan untuk mengkonfigurasi Pemacu Gilir dan baris gilir. Anda boleh menjana fail queue.php dengan arahan berikut:

php artisan queue:table
php artisan queue:failed-table
php artisan migrate
Salin selepas log masuk

Ini akan menjana fail migrasi dan jadual gilir. Jalankan arahan migrasi untuk melaksanakan migrasi.

Dalam fail queue.php, anda boleh memilih untuk menggunakan pelbagai pemacu gilir:

  • Pemandu pangkalan data - menyimpan tugas dalam pangkalan data, yang boleh Sebagai sistem beratur peringkat permulaan.
  • Redis Driver - Menggunakan sokongan baris gilir terbina dalam Redis.
  • Pemandu Beanstalkd - Menggunakan perkhidmatan baris gilir mesej Beanstalkd.
  • Pemacu Amazon SQS - Menggunakan Amazon Simple Queue Service (SQS).

Sebagai contoh, jika anda ingin menggunakan pemacu baris gilir Redis, sila konfigurasikan fail queue.php seperti berikut:

'default' => env('QUEUE_CONNECTION', 'redis'),
'connections' => [
    'redis' => [
        'driver' => 'redis',
        'connection' => 'default',
        'queue' => env('REDIS_QUEUE', 'default'),
        'retry_after' => 90,
        'block_for' => null,
    ],
]
Salin selepas log masuk

Langkah 2: Buat kelas tugas giliran

Seterusnya, anda perlu membuat kelas tugas baris gilir untuk mengendalikan tugas tak segerak. Kelas ini mestilah kelas PHP mudah yang mentakrifkan logik tugas. Contohnya, kod berikut ialah kelas tugas tak segerak untuk menghantar e-mel:

class SendEmail implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    protected $email;
    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($email)
    {
        $this->email = $email;
    }
    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        Mail::to($this->email)->send(new WelcomeEmail());
    }
}
Salin selepas log masuk

Kelas ini melaksanakan antara muka ShouldQueue, yang diperlukan untuk memberitahu Laravel untuk menukar kelas ini kepada kelas tugas tak segerak. Kaedah handle() mentakrifkan logik khusus tugasan, jadi tugasan yang anda perlu kendalikan secara tak segerak boleh dilakukan di sini.

Langkah 3: Tolak tugas ke dalam baris gilir

Sekarang anda mempunyai tugas baris gilir dan pemandu baris gilir bersedia, langkah seterusnya ialah memasukkan tugasan ke dalam baris gilir. Gunakan kod berikut untuk memanggil baris gilir Eloquent di mana-mana dalam projek anda:

use AppJobsSendEmail; 
use IlluminateSupportFacadesQueue;
...
Queue::push(new SendEmail('example@test.com'));
Salin selepas log masuk

Atau anda boleh menggunakan kaedah dispatch() untuk meletakkan tugasan ke dalam baris gilir, seperti ini:

SendEmail::dispatch('example@test.com');
Salin selepas log masuk

Langkah 4 : Laksanakan tugasan gilir

Sebaik sahaja anda meletakkan tugasan ke dalam baris gilir, tugasan itu akan dihantar ke baris gilir, menunggu pelaksanaan. Anda boleh menggunakan kod berikut untuk menjalankan baris gilir:

php artisan queue:work
Salin selepas log masuk

Menjalankan arahan ini akan memulakan pendengar dan memproses tugasan dalam baris gilir.

Gunakan Penyelia untuk mengurus tugas tak segerak

Memandangkan tugas baris gilir perlu dijalankan di latar belakang, daemon proses perlu disediakan pada pelayan untuk memastikan tugasan boleh terus dilaksanakan. Penyelia ialah daemon proses yang biasa digunakan yang memastikan proses latar belakang tidak ditamatkan secara tidak normal dan memulakannya semula apabila diperlukan.

Langkah 1: Pasang Supervisor

Dalam sistem Ubuntu, anda boleh menggunakan arahan berikut untuk memasang Supervisor:

sudo apt-get update
sudo apt-get install supervisor
Salin selepas log masuk

Langkah 2: Buat fail konfigurasi Supervisor

Buat fail konfigurasi dalam direktori /etc/supervisor/conf.d, contohnya myqueue.conf:

nano /etc/supervisor/conf.d/myqueue.conf
Salin selepas log masuk

Tambah kandungan berikut pada fail konfigurasi, pastikan anda menukar laluan, arahan dan nama pengguna untuk Memadankan program anda:

[program:myqueue]
process_name=%(program_name)s_%(process_num)02d
command=/usr/bin/php /path/to/artisan queue:work --sleep=3 --tries=3 --daemon
autostart=true
autorestart=true
user=username
numprocs=1
redirect_stderr=true
stdout_logfile=/path/to/storage/logs/myqueue.log
Salin selepas log masuk

Langkah 3: Muat Semula Penyelia

Selepas anda menukar fail konfigurasi Penyelia, anda perlu memberitahu Penyelia untuk memuat semula fail konfigurasi. Gunakan arahan berikut untuk memuatkan semula Penyelia:

sudo supervisorctl reread

sudo supervisorctl update

sudo supervisorctl start all
Salin selepas log masuk

Langkah 4: Lihat log Penyelia

Anda boleh melihat output dan maklumat ralat tugas tak segerak dalam fail log Penyelia. Sebagai contoh, anda boleh melihat log Penyelia dengan melihat laluan dan nama fail log yang dinyatakan dalam fail konfigurasi:

tail -f /path/to/storage/logs/myqueue.log
Salin selepas log masuk

Kesimpulan

Artikel ini memperkenalkan cara menggunakan Barisan Laravel dan Penyelia untuk mengurus tak segerak tugasan, menggunakan Laravel Queues memudahkan untuk membuat baris gilir tugasan yang memakan masa dan menjadikan aplikasi lebih cekap dan responsif. Gunakan Penyelia untuk memastikan bahawa tugas latar belakang boleh terus dijalankan dan dimulakan semula secara automatik apabila diperlukan. Saya harap artikel ini akan membantu perkembangan anda.

Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana untuk mengurus tugas tak segerak menggunakan Baris Gilir dan Penyelia Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pembangunan Laravel: Bagaimana untuk menggunakan Laravel Queue untuk mengendalikan tugas tak segerak? Pembangunan Laravel: Bagaimana untuk menggunakan Laravel Queue untuk mengendalikan tugas tak segerak? Jun 13, 2023 pm 08:32 PM

Apabila aplikasi menjadi lebih kompleks, pengendalian dan mengurus sejumlah besar data dan proses adalah satu cabaran. Untuk menangani situasi ini, Laravel menyediakan pengguna dengan alat yang sangat berkuasa, Laravel Queue (Queue). Ia membolehkan pembangun menjalankan tugas seperti menghantar e-mel, menjana PDF, mengendalikan pemangkasan imej, dsb. di latar belakang tanpa sebarang kesan pada antara muka pengguna. Dalam artikel ini, kami akan mendalami cara menggunakan baris gilir Laravel. Apakah giliran LaravelQueue

Cara menggunakan baris gilir mesej untuk pemprosesan tugas tak segerak dalam FastAPI Cara menggunakan baris gilir mesej untuk pemprosesan tugas tak segerak dalam FastAPI Jul 30, 2023 pm 09:21 PM

Cara menggunakan baris gilir mesej untuk pemprosesan tugas tak segerak dalam FastAPI Pengenalan: Dalam aplikasi web, selalunya dihadapi bahawa tugas yang memakan masa perlu diproses, seperti menghantar e-mel, menjana laporan, dsb. Jika tugasan ini diletakkan dalam proses permintaan-tindak balas segerak, pengguna perlu menunggu untuk masa yang lama, mengurangkan pengalaman pengguna dan kelajuan tindak balas pelayan. Untuk menyelesaikan masalah ini, kami boleh menggunakan baris gilir mesej untuk pemprosesan tugas tak segerak. Artikel ini akan memperkenalkan cara menggunakan baris gilir mesej untuk memproses tugas tak segerak dalam rangka kerja FastAPI.

Cadangan pembangunan: Cara menggunakan rangka kerja ThinkPHP untuk melaksanakan tugas tak segerak Cadangan pembangunan: Cara menggunakan rangka kerja ThinkPHP untuk melaksanakan tugas tak segerak Nov 22, 2023 pm 12:01 PM

"Cadangan Pembangunan: Cara Menggunakan Rangka Kerja ThinkPHP untuk Melaksanakan Tugas Asynchronous" Dengan perkembangan pesat teknologi Internet, aplikasi Web mempunyai keperluan yang semakin tinggi untuk mengendalikan sejumlah besar permintaan serentak dan logik perniagaan yang kompleks. Untuk meningkatkan prestasi sistem dan pengalaman pengguna, pembangun sering mempertimbangkan untuk menggunakan tugas tak segerak untuk melaksanakan beberapa operasi yang memakan masa, seperti menghantar e-mel, memproses muat naik fail, menjana laporan, dsb. Dalam bidang PHP, rangka kerja ThinkPHP, sebagai rangka kerja pembangunan yang popular, menyediakan beberapa cara mudah untuk melaksanakan tugas tak segerak.

Bagaimana untuk menggunakan Supervisor untuk mengurus baris gilir ThinkPHP6? Bagaimana untuk menggunakan Supervisor untuk mengurus baris gilir ThinkPHP6? Jun 12, 2023 am 08:51 AM

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: sistem baris gilir adalah

Pustaka pengurusan proses dalam PHP8.0: Penyelia Pustaka pengurusan proses dalam PHP8.0: Penyelia May 14, 2023 am 08:28 AM

Dengan pembangunan berterusan bahasa PHP, semakin banyak fungsi dan perpustakaan diperkenalkan ke dalam kotak alat pembangun Salah satu fungsi penting ialah pengurusan proses. Dalam versi PHP8.0, Supervisor ialah perpustakaan pengurusan proses yang sangat berkuasa, yang boleh membantu kami memulakan, menghentikan, memantau dan memulakan semula proses dengan mudah serta mengekalkan operasi proses yang stabil. Apakah itu Penyelia? Penyelia ialah alat pengurusan proses yang ditulis dalam Python yang membolehkan anda memulakan, menghentikan dan memantau dengan mudah

Cara menggunakan tugas tak segerak untuk melaksanakan pemprosesan latar belakang dalam PHP Cara menggunakan tugas tak segerak untuk melaksanakan pemprosesan latar belakang dalam PHP Jun 27, 2023 pm 03:10 PM

Dalam pembangunan web, sesetengah tugas mengambil masa yang lama untuk diselesaikan, seperti pemprosesan data, muat naik fail, penghantaran e-mel, dsb. Jika operasi ini dilakukan di latar depan, ia akan membawa kepada pengalaman pengguna yang lemah dan malah menyebabkan halaman menjadi tidak responsif untuk masa yang lama. Oleh itu, menggunakan tugas tak segerak boleh meletakkan tugas ini di latar belakang, meningkatkan keupayaan serentak sistem, dan juga menjadikan pengalaman pengguna dan interaksi latar depan lebih lancar. Sebagai bahasa skrip sebelah pelayan yang popular, PHP juga mempunyai sokongan yang baik untuk melaksanakan tugas tak segerak. Artikel ini akan memperkenalkan cara menggunakan heterogeniti dalam PHP

Pembangunan Laravel: Bagaimana untuk menggunakan Laravel Job Queues untuk melaksanakan tugas tak segerak? Pembangunan Laravel: Bagaimana untuk menggunakan Laravel Job Queues untuk melaksanakan tugas tak segerak? Jun 13, 2023 pm 07:12 PM

Pembangunan Laravel: Bagaimana untuk menggunakan LaravelJobQueues untuk melaksanakan tugas tak segerak? Dalam pembangunan aplikasi web, kita selalunya perlu melakukan beberapa tugasan respons yang memakan masa dan tidak serta-merta. Tugas-tugas ini akan menduduki sumber pelayan, malah menyekat permintaan pengguna lain, dan sangat mempengaruhi pengalaman pengguna. LaravelJobQueues menyediakan penyelesaian yang boleh menukar tugas yang memakan masa ini kepada tugas tak segerak dan memprosesnya menggunakan baris gilir. Artikel ini akan memperkenalkan Larave

Menggunakan ThinkPHP6 untuk melaksanakan tugas tak segerak Menggunakan ThinkPHP6 untuk melaksanakan tugas tak segerak Jun 20, 2023 pm 01:14 PM

Dalam beberapa tahun kebelakangan ini, dengan pembangunan berterusan perkhidmatan Internet, pelbagai tugas tak segerak telah menjadi bahagian penting dalam pembangunan Web, seperti baris gilir mesej, pemantauan acara, tugas berjadual, dll. Menggunakan teknologi tugas tak segerak boleh meningkatkan prestasi tapak web dan mengurangkan beban pada pelayan Ia juga boleh membantu mengurangkan masa menunggu pengguna dan meningkatkan pengalaman pengguna. Artikel ini akan memperkenalkan cara menggunakan ThinkPHP6 untuk melaksanakan tugas tak segerak. 1. Gambaran keseluruhan tugas tak segerak Tugas tak segerak bermaksud dalam sesuatu proses, tugasan tertentu tidak dilaksanakan secara berurutan, tetapi diserahkan kepada unit pemprosesan lain.

See all articles