Rumah pembangunan bahagian belakang tutorial php Cara menggunakan fungsi Queue dalam rangka kerja Laravel

Cara menggunakan fungsi Queue dalam rangka kerja Laravel

Jul 28, 2023 pm 09:37 PM
guna rangka kerja laravel Beratur

Cara menggunakan fungsi baris gilir (Baris Gilir) dalam rangka kerja Laravel

Pengenalan:
Baris Gilir (Queue) ialah mekanisme pemprosesan tak segerak biasa yang memainkan peranan penting dalam pembangunan web. Rangka kerja Laravel menyediakan fungsi baris gilir berkuasa yang boleh mengendalikan pelbagai tugas latar belakang dengan mudah, seperti menghantar e-mel, menjana laporan, memproses data besar, dsb. Artikel ini akan memperkenalkan cara menggunakan fungsi baris gilir dalam rangka kerja Laravel, termasuk konfigurasi baris gilir, definisi tugas dan pelaksanaan, dsb., dan memberikan contoh kod yang sepadan.

1. Konfigurasikan baris gilir

Dalam rangka kerja Laravel, konfigurasi baris gilir adalah sangat mudah. Pertama, dalam fail konfigurasi config/queue.php, kita boleh menetapkan pemacu giliran (Pemandu Gilir) dan parameter sambungan yang sepadan. Laravel menyokong pelbagai pemacu baris gilir, termasuk pangkalan data, Redis, Beanstalkd, dll. Di sini kita mengambil menggunakan pemacu pangkalan data sebagai contoh. config/queue.php中,我们可以设置队列驱动器(Queue Driver)和相应的连接参数。Laravel支持多种队列驱动器,包括数据库、Redis、Beanstalkd等。这里以使用数据库驱动器为例进行说明。

'connections' => [
    'database' => [
        'driver' => 'database',
        'table' => 'jobs',
        'queue' => 'default',
        'retry_after' => 90,
    ],
],
Salin selepas log masuk

上述配置中,driver指定了队列驱动器为数据库驱动,table指定了存储队列任务的数据表名,queue指定了默认队列的名称,retry_after指定了任务执行失败后的重试时间。

二、定义任务

在Laravel框架中,队列任务(Job)是以类的方式定义的,通常存放在app/Jobs目录下。我们来创建一个简单的队列任务,用于发送邮件。

首先,使用Artisan命令来生成队列任务模板:

php artisan make:job SendEmailJob
Salin selepas log masuk

生成成功后,在app/Jobs目录下会生成一个名为SendEmailJob的类文件。打开该类文件,可以看到以下代码:

namespace AppJobs;

use IlluminateBusQueueable;
use IlluminateContractsQueueShouldQueue;
use IlluminateFoundationBusDispatchable;
use IlluminateQueueInteractsWithQueue;
use IlluminateQueueSerializesModels;

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

    public function __construct()
    {
        //
    }

    public function handle()
    {
        // 发送邮件的逻辑代码
    }
}
Salin selepas log masuk

在这个类中,我们可以定义发送邮件的逻辑代码。需要注意的是,由于队列任务是异步执行的,因此需要将ShouldQueue接口作为类的实现。同时,其他特征(Trait)DispatchableInteractsWithQueueQueueableSerializesModels提供了对队列的操作和对象序列化等支持。

三、任务入队

在Laravel框架中,任务入队通常是通过调用dispatch函数来实现。下面是一个将SendEmailJob任务入队的示例代码:

use AppJobsSendEmailJob;

dispatch(new SendEmailJob());
Salin selepas log masuk

上述代码将SendEmailJob任务添加到默认队列中。如果需要指定队列名称,可以使用onQueue方法:

use AppJobsSendEmailJob;

dispatch((new SendEmailJob())->onQueue('emails'));
Salin selepas log masuk

另外,如果希望任务延迟执行,可以使用delay方法:

use AppJobsSendEmailJob;

$job = (new SendEmailJob())->delay(Carbon::now()->addMinutes(10));

dispatch($job);
Salin selepas log masuk

四、执行队列任务

在Laravel框架中,可以使用两种方法执行队列任务:同步执行和异步执行。

  1. 同步执行(Sync Driver)

同步执行是指任务在当前请求中立即执行,不经过队列驱动器的处理。在配置文件config/queue.php中,将默认的队列驱动器设为“sync”即可。

'default' => env('QUEUE_DRIVER', 'sync'),
Salin selepas log masuk

此时,通过调用dispatch函数将任务入队后,任务将会在当前请求中立即执行。

  1. 异步执行

异步执行是指任务由队列驱动器负责处理和执行。在配置文件config/queue.php中,将默认的队列驱动器设为其他驱动器,例如“database”。

'default' => env('QUEUE_DRIVER', 'database'),
Salin selepas log masuk

然后,在终端中执行以下命令,监听并执行队列任务:

php artisan queue:work
Salin selepas log masuk

此时,通过调用dispatch函数将任务入队后,任务将被添加到队列中,并由queue:workrrreee

Dalam konfigurasi di atas, driver menyatakan bahawa pemandu baris gilir ialah pemacu pangkalan data, jadual menentukan nama jadual data yang menyimpan tugas baris gilir dan baris gilir menentukan Menentukan nama baris gilir lalai, dan retry_after menentukan masa cuba semula selepas kegagalan pelaksanaan tugas.


2. Tentukan tugas

🎜Dalam rangka kerja Laravel, tugasan baris gilir (Jobs) ditakrifkan dalam bentuk kelas dan biasanya disimpan dalam direktori app/Jobs. Mari buat tugas giliran mudah untuk menghantar e-mel. 🎜🎜Pertama, gunakan arahan Artisan untuk menjana templat tugas baris gilir: 🎜rrreee🎜Selepas penjanaan berjaya, fail kelas bernama SendEmailJob akan dijana dalam direktori app/Jobs . Buka fail kelas ini dan anda boleh melihat kod berikut: 🎜rrreee🎜Dalam kelas ini, kita boleh menentukan kod logik untuk menghantar e-mel. Perlu diingat bahawa memandangkan tugas baris gilir dilaksanakan secara tidak segerak, antara muka ShouldQueue perlu dilaksanakan sebagai kelas. Pada masa yang sama, ciri lain (Trait) Dispatchable, InteractsWithQueue, Queueable, SerializesModels menyediakan operasi dan objek untuk beratur Serialisasi dan sokongan lain. 🎜🎜3. Barisan tugasan 🎜🎜Dalam rangka kerja Laravel, giliran tugasan biasanya dilaksanakan dengan memanggil fungsi penghantaran. Berikut ialah contoh kod yang membariskan tugasan SendEmailJob: 🎜rrreee🎜Kod di atas menambah tugasan SendEmailJob pada baris gilir lalai. Jika anda perlu menentukan nama baris gilir, anda boleh menggunakan kaedah onQueue: 🎜rrreee🎜 Selain itu, jika anda mahu tugasan ditangguhkan, anda boleh menggunakan delay kaedah: 🎜rrreee🎜 4. Laksanakan tugas giliran🎜 🎜Dalam rangka kerja Laravel, anda boleh menggunakan dua kaedah untuk melaksanakan tugas giliran: pelaksanaan segerak dan pelaksanaan tak segerak. 🎜
  1. Pelaksanaan segerak (Pemacu Penyegerakan)
🎜Pelaksanaan segerak bermaksud bahawa tugas itu dilaksanakan serta-merta dalam permintaan semasa tanpa diproses oleh pemandu baris gilir. Dalam fail konfigurasi config/queue.php, tetapkan pemacu baris gilir lalai kepada "segerak". 🎜rrreee🎜Pada masa ini, selepas memasukkan tugasan dengan memanggil fungsi dispatch, tugasan akan dilaksanakan serta-merta dalam permintaan semasa. 🎜
  1. Pelaksanaan tak segerak
🎜Pelaksanaan tak segerak bermaksud tugas diproses dan dilaksanakan oleh pemandu baris gilir. Dalam fail konfigurasi config/queue.php, tetapkan pemacu gilir lalai kepada pemacu lain, seperti "pangkalan data". 🎜rrreee🎜Kemudian, laksanakan arahan berikut dalam terminal untuk mendengar dan melaksanakan tugas baris gilir: 🎜rrreee🎜Pada masa ini, selepas tugasan dimasukkan ke dalam baris gilir dengan memanggil fungsi dispatch, tugasan akan ditambah ke baris gilir, dan Dipantau dan dilaksanakan oleh perintah queue:work. 🎜🎜Ringkasan: 🎜Melalui langkah di atas, kita boleh menggunakan fungsi baris gilir dalam rangka kerja Laravel, dan mengambil tugas menghantar e-mel sebagai contoh untuk memberikan contoh kod yang sepadan. Fungsi baris gilir membolehkan kami mengendalikan tugas latar belakang dengan lebih baik dan meningkatkan keselarasan sistem dan kelajuan tindak balas. Dalam pembangunan sebenar, ia juga boleh digabungkan dengan fungsi lain dan perkhidmatan pihak ketiga untuk mencapai fungsi yang lebih berkuasa. Saya harap artikel ini dapat membantu pembaca memahami dan menggunakan fungsi baris gilir rangka kerja Laravel. 🎜

Atas ialah kandungan terperinci Cara menggunakan fungsi Queue dalam rangka kerja 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.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

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)

Cara menggunakan pautan magnet Cara menggunakan pautan magnet Feb 18, 2024 am 10:02 AM

Pautan magnet ialah kaedah pautan untuk memuat turun sumber, yang lebih mudah dan cekap daripada kaedah muat turun tradisional. Pautan magnet membolehkan anda memuat turun sumber secara peer-to-peer tanpa bergantung pada pelayan perantara. Artikel ini akan memperkenalkan cara menggunakan pautan magnet dan perkara yang perlu diberi perhatian. 1. Apakah pautan magnet? Pautan magnet ialah kaedah muat turun berdasarkan protokol P2P (Peer-to-Peer). Melalui pautan magnet, pengguna boleh menyambung terus kepada penerbit sumber untuk melengkapkan perkongsian dan muat turun sumber. Berbanding dengan kaedah muat turun tradisional, magnet

Cara menggunakan fail mdf dan mds Cara menggunakan fail mdf dan mds Feb 19, 2024 pm 05:36 PM

Cara menggunakan fail mdf dan fail mds Dengan kemajuan teknologi komputer yang berterusan, kami boleh menyimpan dan berkongsi data dalam pelbagai cara. Dalam bidang media digital, kita sering menghadapi beberapa format fail khas. Dalam artikel ini, kami akan membincangkan format fail biasa - fail mdf dan mds, dan memperkenalkan cara menggunakannya. Pertama, kita perlu memahami maksud fail mdf dan fail mds. mdf ialah lanjutan fail imej CD/DVD, dan fail mds ialah fail metadata bagi fail mdf.

Apakah perisian crystaldiskmark? -Bagaimana menggunakan crystaldiskmark? Apakah perisian crystaldiskmark? -Bagaimana menggunakan crystaldiskmark? Mar 18, 2024 pm 02:58 PM

CrystalDiskMark ialah alat penanda aras HDD kecil untuk pemacu keras yang cepat mengukur kelajuan baca/tulis berurutan dan rawak. Seterusnya, biarkan editor memperkenalkan CrystalDiskMark kepada anda dan cara menggunakan crystaldiskmark~ 1. Pengenalan kepada CrystalDiskMark CrystalDiskMark ialah alat ujian prestasi cakera yang digunakan secara meluas yang digunakan untuk menilai kelajuan baca dan tulis serta prestasi pemacu keras mekanikal dan pemacu keadaan pepejal (SSD Prestasi I/O rawak. Ia adalah aplikasi Windows percuma dan menyediakan antara muka mesra pengguna dan pelbagai mod ujian untuk menilai aspek prestasi cakera keras yang berbeza dan digunakan secara meluas dalam ulasan perkakasan

Bagaimana untuk memuat turun foobar2000? -Cara menggunakan foobar2000 Bagaimana untuk memuat turun foobar2000? -Cara menggunakan foobar2000 Mar 18, 2024 am 10:58 AM

foobar2000 ialah perisian yang boleh mendengar sumber muzik pada bila-bila masa Ia membawakan anda semua jenis muzik dengan kualiti bunyi tanpa kehilangan Versi pemain muzik yang dipertingkatkan membolehkan anda mendapatkan pengalaman muzik yang lebih komprehensif dan selesa mainkan audio lanjutan pada komputer Peranti dipindahkan ke telefon mudah alih untuk memberikan pengalaman main balik muzik yang lebih mudah dan cekap Reka bentuk antara muka adalah ringkas, jelas dan mudah digunakan Ia menggunakan gaya reka bentuk minimalis tanpa terlalu banyak hiasan dan operasi yang menyusahkan untuk bermula dengan cepat. Ia juga menyokong pelbagai kulit dan Tema, memperibadikan tetapan mengikut pilihan anda sendiri, dan mencipta pemain muzik eksklusif yang menyokong main balik berbilang format audio. Ia juga menyokong fungsi perolehan audio untuk melaraskan kelantangan kepada keadaan pendengaran anda sendiri untuk mengelakkan kerosakan pendengaran yang disebabkan oleh kelantangan yang berlebihan. Seterusnya, izinkan saya membantu anda

Cara menggunakan NetEase Mailbox Master Cara menggunakan NetEase Mailbox Master Mar 27, 2024 pm 05:32 PM

NetEase Mailbox, sebagai alamat e-mel yang digunakan secara meluas oleh netizen Cina, sentiasa memenangi kepercayaan pengguna dengan perkhidmatannya yang stabil dan cekap. NetEase Mailbox Master ialah perisian e-mel yang dicipta khas untuk pengguna telefon mudah alih. Ia sangat memudahkan proses menghantar dan menerima e-mel dan menjadikan pemprosesan e-mel kami lebih mudah. Jadi bagaimana untuk menggunakan NetEase Mailbox Master, dan apakah fungsi khusus yang ada di bawah, editor tapak ini akan memberi anda pengenalan terperinci, dengan harapan dapat membantu anda. Mula-mula, anda boleh mencari dan memuat turun aplikasi NetEase Mailbox Master di gedung aplikasi mudah alih. Cari "Induk Peti Mel NetEase" dalam App Store atau Baidu Mobile Assistant, dan kemudian ikut gesaan untuk memasangnya. Selepas muat turun dan pemasangan selesai, kami membuka akaun e-mel NetEase dan log masuk. Antara muka log masuk adalah seperti yang ditunjukkan di bawah

Cara menggunakan aplikasi Baidu Netdisk Cara menggunakan aplikasi Baidu Netdisk Mar 27, 2024 pm 06:46 PM

Storan awan telah menjadi bahagian yang amat diperlukan dalam kehidupan dan kerja harian kita pada masa kini. Sebagai salah satu perkhidmatan storan awan terkemuka di China, Baidu Netdisk telah memenangi hati sebilangan besar pengguna dengan fungsi storan yang berkuasa, kelajuan penghantaran yang cekap dan pengalaman operasi yang mudah. Dan sama ada anda ingin menyandarkan fail penting, berkongsi maklumat, menonton video dalam talian atau mendengar muzik, Baidu Cloud Disk boleh memenuhi keperluan anda. Walau bagaimanapun, ramai pengguna mungkin tidak memahami penggunaan khusus aplikasi Baidu Netdisk, jadi tutorial ini akan memperkenalkan anda tentang cara menggunakan aplikasi Baidu Netdisk secara terperinci Jika anda masih keliru, sila ikuti artikel ini untuk mengetahui lebih lanjut! Cara menggunakan Cakera Rangkaian Awan Baidu: 1. Pemasangan Mula-mula, semasa memuat turun dan memasang perisian Baidu Cloud, sila pilih pilihan pemasangan tersuai.

Tutorial BTCC: Bagaimana untuk mengikat dan menggunakan dompet MetaMask pada pertukaran BTCC? Tutorial BTCC: Bagaimana untuk mengikat dan menggunakan dompet MetaMask pada pertukaran BTCC? Apr 26, 2024 am 09:40 AM

MetaMask (juga dipanggil Little Fox Wallet dalam bahasa Cina) ialah perisian dompet penyulitan percuma dan diterima baik. Pada masa ini, BTCC menyokong pengikatan pada dompet MetaMask Selepas mengikat, anda boleh menggunakan dompet MetaMask untuk log masuk dengan cepat, menyimpan nilai, membeli syiling, dsb., dan anda juga boleh mendapatkan bonus percubaan 20 USDT untuk pengikatan pertama. Dalam tutorial dompet BTCCMetaMask, kami akan memperkenalkan secara terperinci cara mendaftar dan menggunakan MetaMask, dan cara mengikat dan menggunakan dompet Little Fox dalam BTCC. Apakah dompet MetaMask? Dengan lebih 30 juta pengguna, MetaMask Little Fox Wallet ialah salah satu dompet mata wang kripto yang paling popular hari ini. Ia percuma untuk digunakan dan boleh dipasang pada rangkaian sebagai sambungan

Bagaimana untuk menggunakan Xiaoai Speaker Bagaimana untuk menyambung Xiaoai Speaker ke telefon bimbit Bagaimana untuk menggunakan Xiaoai Speaker Bagaimana untuk menyambung Xiaoai Speaker ke telefon bimbit Feb 22, 2024 pm 05:19 PM

Selepas lama menekan butang main pembesar suara, sambungkan ke wifi dalam perisian dan anda boleh menggunakannya. Tutorial Model Berkenaan: Xiaomi 12 Sistem: EMUI11.0 Versi: Xiaoai Classmate 2.4.21 Analisis 1 Mula-mula cari butang main pembesar suara, dan tekan dan tahan untuk memasuki mod pengedaran rangkaian. 2 Log masuk ke akaun Xiaomi anda dalam perisian Xiaoai Speaker pada telefon anda dan klik untuk menambah Speaker Xiaoai baharu. 3. Selepas memasukkan nama dan kata laluan wifi, anda boleh menghubungi Xiao Ai untuk menggunakannya. Tambahan: Apakah fungsi yang ada pada Xiaoai Speaker 1 Xiaoai Speaker mempunyai fungsi sistem, fungsi sosial, fungsi hiburan, fungsi pengetahuan, fungsi kehidupan, rumah pintar dan rancangan latihan. Ringkasan/Nota: Apl Xiao Ai mesti dipasang pada telefon mudah alih anda terlebih dahulu untuk sambungan dan penggunaan yang mudah.

See all articles