laravel

Tutorial Antrian Laravel

Tutorial Antrian Laravel
Antrian Laravel adalah salah satu ciri yang lebih berguna dari kerangka Laravel. Fungsi ini digunakan untuk menunggu tugas yang memakan masa dan melakukan tugas di kemudian hari untuk meningkatkan prestasi dan kecekapan aplikasi Laravel. Ciri ini menyediakan pelbagai jenis antrian di bahagian belakang, seperti Amazon SQS, Redis, Beanstalk, pemacu segerak, atau pangkalan data hubungan. Pemacu beratur null digunakan untuk membuang kerja yang beratur. Fail konfigurasi barisan disimpan di lokasi config / beratur.php. Contoh umum penggunaan barisan Laravel adalah menghantar e-mel. Apabila diperlukan untuk menangani sejumlah besar e-mel dalam aplikasi Laraval, maka lebih baik menggunakan antrian Laravel untuk mempercepat pemprosesan. Tutorial ini menunjukkan cara menggunakan barisan Laravel untuk menghantar sebilangan besar e-mel.

Prasyarat

Sebelum memulakan tutorial ini, pertama, selesaikan tugas berikut:

  1. Pasang projek Laravel baru
  2. Siapkan sambungan pangkalan data
  3. Siapkan konfigurasi untuk mengirim e-mel (Anda dapat memeriksa tutorial pengiriman e-mel untuk mengirim e-mel menggunakan SMTP)

Buat Jadual

Anda mesti membuat pekerjaan jadual dalam pangkalan data untuk menyimpan semua barisan. Jalankan arahan berikut dari terminal untuk membuat fail migrasi untuk pekerjaan meja.

antrian $ php artisan: jadual

Anda boleh membuka fail migrasi dari lokasi pangkalan data / migrasi /. Fail mengandungi kandungan berikut.

gunakan Illuminate \ Database \ Migrations \ Migration;
gunakan Illuminate \ Database \ Schema \ Blueprint;
gunakan Illuminate \ Support \ Facades \ Schema;
kelas CreateJobsTable meluaskan Migrasi

/ **
* Jalankan migrasi.
*
* @kembali tidak sah
* /
fungsi awam meningkat ()

Skema :: create ('jobs', function (Blueprint $ table)
$ table-> bigIncrements ('id');
$ table-> string ('queue') -> index ();
$ table-> longText ('payload');
$ table-> unsignedTinyInteger ('cubaan');
$ table-> unsignedInteger ('reserve_at') -> nullable ();
$ table-> unsignedInteger ('available_at');
$ table-> unsignedInteger ('create_at');
);

/ **
* Balikkan migrasi.
*
* @kembali tidak sah
* /
fungsi awam turun ()

Skema :: dropIfExists ('pekerjaan');

Jalankan arahan berikut dari terminal untuk membuat pekerjaan meja.

$ php artisan berhijrah

Buat Kelas Mel

Anda mesti membuat kelas yang boleh dihantar untuk menghantar e-mel dari aplikasi Laravel. Jalankan arahan berikut untuk membuat kelas mel bernama Menghantar e-mel di lokasi aplikasi / Mel.

$ php artisan make: mel SendEmail

Kandungan kelas ini ditunjukkan di bawah. Nama fail pandangan yang digunakan dalam membina () kaedah akan dibuat pada bahagian seterusnya dari tutorial ini.

ruang nama Aplikasi \ Mel;
gunakan Illuminate \ Bus \ Queueable;
gunakan Illuminate \ Contracts \ Queue \ ShouldQueue;
gunakan Illuminate \ Mail \ Mailable;
gunakan Illuminate \ Queue \ SerializesModels;
kelas SendEmail dilanjutkan Boleh didapati

gunakan Queueable, SerializesModels;
/ **
* Buat contoh mesej baru.
*
* @kembali tidak sah
* /
fungsi awam __konstruk ()

//

/ **
* Bina mesej.
*
* @kembalikan $ ini
* /
pembinaan fungsi awam ()

/ * Tentukan nama paparan yang akan digunakan untuk templat e-mel * /
kembalikan paparan $ this-> ('e-mel');

Buat Paparan

Buat fail pandangan bernama e-mel.bilah.php dengan kandungan berikut yang akan dihantar sebagai badan e-mel.

Selamat datang ke Petunjuk Linux


Belajar Laravel dengan mudah

Buat Kelas Pekerjaan

Jalankan arahan berikut untuk membuat kelas pekerjaan. Nama fail kelas pekerjaan bernama Menghantar E-mel.php akan dibuat di lokasi aplikasi / Pekerjaan.

$ php artisan make: job SendingEmail

Kandungan dari Menghantar E-mel.php ditunjukkan di bawah. Anda mesti menetapkan alamat e-mel yang sah di dalam hingga () kaedah pemegang () berfungsi untuk menguji sama ada kod tersebut berfungsi dengan baik. Tetapkan alamat e-mel yang sah sebagai ganti 'Alamat E-mel Penerima' di dalam hingga () kaedah untuk memeriksa sama ada barisan berfungsi dengan baik.

namespace App \ Pekerjaan;
gunakan Illuminate \ Bus \ Queueable;
gunakan Illuminate \ Contracts \ Queue \ ShouldQueue;
gunakan Illuminate \ Foundation \ Bus \ Dispatchable;
gunakan Illuminate \ Queue \ InteractsWithQueue;
gunakan Illuminate \ Queue \ SerializesModels;
/ * Menambah pakej yang diperlukan * /
gunakan Surat;
gunakan Aplikasi \ Mail \ SendEmail;
kelas SendingEmail mengimplementasikan ShouldQueue

gunakan Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/ **
* Buat contoh pekerjaan baru.
*
* @kembali tidak sah
* /
fungsi awam __konstruk ()

//

/ **
* Laksanakan tugas.
*
* @kembali tidak sah
* /
pemegang fungsi awam ()

/ * Buat objek kelas yang boleh dihantar dan hantarkan e-mel * /
$ email = SendEmail baru ();
/ * Tetapkan alamat e-mel yang sah * /
Mel :: ke ('Alamat E-mel Penerima') -> hantar ($ e-mel);

Buat Pengawal

Jalankan arahan berikut untuk membuat pengawal untuk mengendalikan barisan. Apabila pemegangQueue () fungsi pengawal dijalankan, kerja giliran akan didorong dan e-mel akan dihantar.

$ php artisan make: pengawal SendEmailController

SendEmailController.php

namespace App \ Http \ Controllers;
gunakan Illuminate \ Http \ Request;
/ * Tambahkan pakej yang diperlukan * /
gunakan App \ Jobs \ SendingEmail;
gunakan Carbon \ Carbon;
kelas SendEmailController meluaskan Pengawal

/ **
* Menggunakan Antrian Laravel
* /
pemegang fungsi awamQueue ()

/ * Tolak pekerjaan baru dalam barisan pekerjaan * /
penghantaran (SendingEmail baru ());
/ * Cetak mesej setelah menghantar e-mel * /
echo 'E-mel telah dihantar';

Tambah Laluan

Buka laman web.php fail dari laluan folder dan tambahkan laluan berikut untuk melaksanakan tugas beratur menggunakan pengawal.

Laluan :: get ('email', '[email dilindungi]');

Jalankan URL berikut di penyemak imbas untuk memeriksa sama ada kod tersebut berfungsi. Buka alamat e-mel penerima untuk memeriksa sama ada e-mel baru telah diterima.

http: // localhost: 8000 / e-mel

Tambah Kelewatan

Buka Menghantar E-mel.php fail semula dan ubah isi kandungan pemegangQueue () berfungsi untuk menambah kelewatan lima saat untuk tugas giliran.

namespace App \ Http \ Controllers;
gunakan Illuminate \ Http \ Request;
/ * Tambahkan pakej yang diperlukan * /
gunakan App \ Jobs \ SendingEmail;
gunakan Carbon \ Carbon;
kelas SendEmailController meluaskan Pengawal

/ **
* Menggunakan Antrian Laravel
* /
pemegang fungsi awamQueue ()

/ * Buat objek barisan baru dengan kelewatan 5 saat * /
$ emailJob = (SendingEmail baru ()) -> kelewatan (Carbon :: now () -> addSeconds (5));
/ * Tolak pekerjaan baru dalam barisan pekerjaan * /
penghantaran ($ emailJob);
/ * Cetak mesej setelah menghantar e-mel * /
echo 'E-mel Dihantar selepas lima saat';

Sekali lagi, jalankan URL berikut di penyemak imbas untuk memeriksa sama ada kod tersebut berfungsi. Di sini, e-mel akan dihantar setelah lima saat, menggunakan kaedah kelewatan () lima saat.

http: // localhost: 8000 / e-mel

Periksa peti masuk alamat e-mel penerima untuk mengetahui sama ada e-mel baru telah diterima setelah 5 saat. E-mel dengan kandungan berikut akan diterima sekiranya tugas antrian berjalan dengan baik.

Kesimpulannya

Tutorial ini menunjukkan penggunaan barisan Laravel yang sangat mudah. Anda boleh menggunakan barisan Laravel untuk pelbagai tujuan, berdasarkan keperluan aplikasi anda. Saya berharap bahawa tutorial ini dapat membantu pembaca memahami konsep asas barisan Laravel dengan lebih baik.

Cara membalikkan arah tatal Tetikus dan Pad Sentuh pada Windows 10
Tetikus dan Pad sentuhs bukan sahaja menjadikan pengkomputeran mudah, tetapi lebih cekap dan kurang memakan masa. Kami tidak dapat membayangkan kehidu...
Cara menukar saiz, warna & skema penunjuk dan kursor tetikus pada Windows 10
Penunjuk dan kursor tetikus di Windows 10 adalah aspek yang sangat penting dalam sistem operasi. Ini boleh dikatakan untuk sistem operasi lain juga, j...
Enjin Permainan Sumber Percuma dan Terbuka untuk Membangunkan Permainan Linux
Artikel ini akan merangkumi senarai enjin permainan sumber percuma dan terbuka yang dapat digunakan untuk mengembangkan permainan 2D dan 3D di Linux. ...