Jadual Kandungan
Bilakah giliran harus digunakan?
1 Konfigurasikan storan baris gilir
2. Cipta kelas tugas
3. Mulakan tugas giliran
4. >Penyelia Ia adalah perisian pemantauan proses pada sistem pengendalian Linux yang memulakan semula perintah baris gilir:dengar atau gilir:kerja secara automatik selepas ia gagal. Untuk memasang Supervisor pada Ubuntu, anda boleh menggunakan arahan berikut:
Rumah rangka kerja php Laravel Contoh untuk menerangkan penggunaan mudah baris gilir Laravel

Contoh untuk menerangkan penggunaan mudah baris gilir Laravel

Feb 25, 2022 pm 06:01 PM
laravel

Artikel ini membawa anda pengetahuan tentang laravel terutamanya memperkenalkan baris gilir Laravel, dalam keadaan apa untuk menggunakan baris gilir, mengkonfigurasi storan baris gilir dan isu lain yang berkaitan.

Contoh untuk menerangkan penggunaan mudah baris gilir Laravel

[Cadangan berkaitan: tutorial pembelajaran laravel]

Artikel ini akan memperkenalkan cara menggunakan baris gilir dalam Laravel dan memahami sebabnya is used Queue

Bilakah giliran harus digunakan?

Memakan masa, seperti memuat naik fail dan kemudian melakukan beberapa penukaran format, dsb.

Jika anda perlu memastikan kadar penghantaran, seperti menghantar mesej teks, kerana anda perlu menghubungi API orang lain, peluang kegagalan sentiasa ada, jadi untuk memastikan penghantaran, mencuba semula adalah penting.

Rekodkan proses penggunaan:

1 Konfigurasikan storan baris gilir

Fail konfigurasi baris gilir disimpan dalam config/queue.php. Anda boleh pilih redis dan pangkalan data di sini dan lain-lain. Kaedah penggunaan adalah seperti berikut.

Pangkalan Data

Buat tugas storan jadual data dan jalankan pemindahan data selepas melaksanakan perintah artisan

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

Redis

Untuk menggunakan redis pemandu gilir, anda Anda perlu mengkonfigurasi sambungan pangkalan data Redis dalam fail konfigurasi anda config/database.php.

Jika sambungan baris gilir Redis anda menggunakan kelompok Redis, nama baris gilir anda mesti mengandungi teg cincang kunci. Ini adalah untuk memastikan bahawa semua kekunci Redis untuk baris gilir yang diberikan diletakkan dalam cincang yang sama:

'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => 'default',
'retry_after' => 90,
],
Salin selepas log masuk

2. Cipta kelas tugas

Kelas tugas untuk baris gilir berada dalam apl/ Pekerjaan / direktori

php artisan make:job SaveBusLine

Ubah suai fail seperti berikut:

namespace App\Jobs;
use App\Http\Repository\BusRepository;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
class SaveBusLine implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/**
* 任务最大尝试次数。
*
* @var int
*/
public $tries = 3;
/**
* 任务运行的超时时间。
*
* @var int
*/
public $timeout = 60;
private $datum;
/**
* Create a new job instance.
* @param array|object $datum
*
* @return void
*/
public function __construct($datum)
{
$this->datum = $datum;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
BusRepository::getInstent()->updateBusLine($this->datum);
}
}
Salin selepas log masuk

Panggil kaedah baris gilir dalam pengawal atau gudang:

use App\Jobs\SaveBusLine;
use Carbon\Carbon;
/***************** 队列操作 start *******************/
SaveBusLine::dispatch($arrayData)->delay(Carbon::now()->addMinute(1));
/***************** 队列操作 end *******************/
Salin selepas log masuk

3. Mulakan tugas giliran

php artisan queue:work

4. >Penyelia Ia adalah perisian pemantauan proses pada sistem pengendalian Linux yang memulakan semula perintah baris gilir:dengar atau gilir:kerja secara automatik selepas ia gagal. Untuk memasang Supervisor pada Ubuntu, anda boleh menggunakan arahan berikut:

{tip} Jika mengkonfigurasi Penyelia sendiri secara manual kedengaran agak menggembirakan, anda boleh mempertimbangkan untuk menggunakan Laravel Forge, yang boleh memasang dan mengkonfigurasi anda secara automatik Projek Laravel.

Mengkonfigurasi Penyelia

sudo apt-get install supervisor
Salin selepas log masuk

Fail konfigurasi penyelia biasanya diletakkan dalam direktori /etc/supervisor/conf.d. Dalam direktori ini anda boleh mencipta sebarang bilangan fail konfigurasi untuk memberitahu Penyelia cara memantau proses anda. Contohnya, kami mencipta laravel-worker.conf untuk memulakan dan memantau proses gilir:kerja:

Arahan nuprocs dalam contoh ini akan meminta Penyelia menjalankan dan memantau 8 proses gilir:kerja, dan di dalamnya Mulakan semula selepas larian yang gagal. Sudah tentu, anda mesti menukar perintah perintah queue:work redis untuk memaparkan pemacu giliran pilihan anda. Anda juga perlu mengubah suai pengguna pelaksanaan pengguna = Proses:

Untuk maklumat lanjut tentang tetapan dan penggunaan Penyelia, sila rujuk dokumentasi rasmi Penyelia.

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php ~/laravel/artisan queue:work redis --sleep=3 --tries=3
autostart=true
autorestart=true
user=lisgroup
numprocs=8
redirect_stderr=true
stdout_logfile=/home/lisgroup/logs/worker.log
Salin selepas log masuk
5. Mengendalikan tugas yang gagal

Kadangkala tugasan dalam baris gilir anda akan gagal. Jangan risau, perkara tidak akan sentiasa berjalan lancar. Laravel mempunyai cara mudah terbina dalam untuk menentukan bilangan maksimum kali tugas akan dicuba semula. Apabila tugasan melebihi bilangan percubaan semula ini, ia akan dimasukkan ke dalam jadual data failed_jobs. Untuk mencipta fail migrasi untuk jadual failed_jobs, anda boleh menggunakan perintah queue:failed-table, dan kemudian gunakan perintah migrate Artisan untuk menjana jadual failed_jobs:

Kemudian jalankan pemproses baris gilir, dan apabila memanggil pekerja baris gilir, anda Bilangan percubaan semula maksimum untuk tugasan hendaklah ditentukan melalui parameter --tries. Jika tidak dinyatakan, tugasan akan dicuba semula secara kekal:

6. Kosongkan tugasan yang gagal
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker:*
Salin selepas log masuk

Anda boleh mentakrifkan kaedah yang gagal secara langsung dalam kelas tugasan, yang boleh menjalankan tugas apabila tugas gagal. Tempat ini sesuai untuk menghantar amaran kepada pengguna atau menetapkan semula operasi pelaksanaan tugas. Maklumat pengecualian yang menyebabkan kegagalan tugas akan dihantar kepada kaedah yang gagal:

[Cadangan berkaitan:

tutorial video laravel

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

Atas ialah kandungan terperinci Contoh untuk menerangkan penggunaan mudah baris gilir 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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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)

Bagaimana untuk mendapatkan kod pengembalian semasa menghantar e -mel gagal di Laravel? Bagaimana untuk mendapatkan kod pengembalian semasa menghantar e -mel gagal di Laravel? Apr 01, 2025 pm 02:45 PM

Kaedah untuk mendapatkan kod kembali apabila menghantar e -mel Laravel gagal. Apabila menggunakan Laravel untuk membangunkan aplikasi, anda sering menghadapi situasi di mana anda perlu menghantar kod pengesahan. Dan pada hakikatnya ...

Tugas Jadual Laravel tidak dilaksanakan: Apa yang harus saya lakukan jika tugas itu tidak berjalan selepas Jadual: Jalankan Perintah? Tugas Jadual Laravel tidak dilaksanakan: Apa yang harus saya lakukan jika tugas itu tidak berjalan selepas Jadual: Jalankan Perintah? Mar 31, 2025 pm 11:24 PM

Tugas Jadual Laravel menjalankan penyelesaian masalah yang tidak responsif semasa menggunakan penjadualan tugas jadual Laravel, banyak pemaju akan menghadapi masalah ini: Jadual: Jalankan ...

Di Laravel, bagaimana menangani situasi di mana kod pengesahan gagal dihantar melalui e -mel? Di Laravel, bagaimana menangani situasi di mana kod pengesahan gagal dihantar melalui e -mel? Mar 31, 2025 pm 11:48 PM

Kaedah mengendalikan kegagalan e -mel Laravel untuk menghantar kod pengesahan adalah menggunakan Laravel ...

Bagaimana untuk melaksanakan fungsi jadual tersuai untuk mengklik untuk menambah data dalam admin dcat? Bagaimana untuk melaksanakan fungsi jadual tersuai untuk mengklik untuk menambah data dalam admin dcat? Apr 01, 2025 am 07:09 AM

Cara melaksanakan fungsi jadual klik tersuai untuk menambah data dalam dcatadmin (laravel-admin) semasa menggunakan dcat ...

Perkongsian Sambungan Laravel Redis: Mengapa kaedah pilih mempengaruhi sambungan lain? Perkongsian Sambungan Laravel Redis: Mengapa kaedah pilih mempengaruhi sambungan lain? Apr 01, 2025 am 07:45 AM

Kesan perkongsian sambungan Redis dalam rangka kerja Laravel dan pilih kaedah apabila menggunakan Rangka Kerja Laravel dan Redis, pemaju mungkin menghadapi masalah: melalui konfigurasi ...

Laravel Multi-Tenant Extension Stancl/Tenancy: Bagaimana Menyesuaikan Alamat Hos Sambungan Pangkalan Data Penyewa? Laravel Multi-Tenant Extension Stancl/Tenancy: Bagaimana Menyesuaikan Alamat Hos Sambungan Pangkalan Data Penyewa? Apr 01, 2025 am 09:09 AM

Sambungan pangkalan data penyewa tersuai dalam pakej lanjutan multi-penyewa Larave Stancl/penyewaan ketika membina aplikasi multi-penyewa menggunakan pakej lanjutan multi-penyewa Larave Stancl/penyewaan, ...

Laravel fasih orm dalam carian model separa Bangla) Laravel fasih orm dalam carian model separa Bangla) Apr 08, 2025 pm 02:06 PM

Pengambilan Model Laraveleloquent: Mudah mendapatkan data pangkalan data Eloquentorm menyediakan cara ringkas dan mudah difahami untuk mengendalikan pangkalan data. Artikel ini akan memperkenalkan pelbagai teknik carian model fasih secara terperinci untuk membantu anda mendapatkan data dari pangkalan data dengan cekap. 1. Dapatkan semua rekod. Gunakan kaedah semua () untuk mendapatkan semua rekod dalam jadual pangkalan data: USEAPP \ MODELS \ POST; $ POSTS = POST :: SEMUA (); Ini akan mengembalikan koleksi. Anda boleh mengakses data menggunakan gelung foreach atau kaedah pengumpulan lain: foreach ($ postsas $ post) {echo $ post->

Migrasi Pangkalan Data Laravel Encounters Duplikat Definisi Kelas: Bagaimana untuk menyelesaikan pendua Penjanaan fail penghijrahan dan konflik nama kelas? Migrasi Pangkalan Data Laravel Encounters Duplikat Definisi Kelas: Bagaimana untuk menyelesaikan pendua Penjanaan fail penghijrahan dan konflik nama kelas? Apr 01, 2025 pm 12:21 PM

Masalah definisi kelas pendua semasa penghijrahan pangkalan data Laravel berlaku. Apabila menggunakan rangka kerja Laravel untuk penghijrahan pangkalan data, pemaju mungkin menghadapi "kelas telah digunakan ...

See all articles