laravel

Tutorial Antrian Laravel

Tutorial Antrian Laravel
Antrian Laravel adalah salah satu fitur yang lebih berguna dari kerangka Laravelvel. Fitur ini digunakan untuk menunggu tugas yang memakan waktu dan melakukan tugas di lain waktu untuk meningkatkan kinerja dan efisiensi aplikasi Laravel. Fitur ini menyediakan berbagai jenis antrean di back-end, seperti Amazon SQS, Redis, Beanstalk, driver sinkron, atau database relasional. Driver antrian null digunakan untuk membuang pekerjaan yang antri. File konfigurasi antrian disimpan di lokasi konfigurasi/antrian.php. Contoh umum menggunakan antrian Laravel adalah mengirim email. Ketika diharuskan untuk menangani email dalam jumlah besar di aplikasi Laraval, maka lebih baik menggunakan antrian Laravel untuk mempercepat pemrosesan. Tutorial ini menunjukkan cara menggunakan antrian Laravel untuk mengirim email dalam jumlah besar.

Prasyarat

Sebelum memulai tutorial ini, selesaikan dulu tugas-tugas berikut:

  1. Instal proyek Laravel baru
  2. Siapkan koneksi database
  3. Siapkan konfigurasi untuk mengirim email (Anda dapat memeriksa tutorial pengiriman email untuk mengirim email menggunakan SMTP)

Buat tabel

Anda harus membuat pekerjaan tabel dalam database untuk menyimpan semua antrian. Jalankan perintah berikut dari terminal untuk membuat file migrasi untuk pekerjaan meja.

$ php artisan antrian: meja

Anda dapat membuka file migrasi dari lokasi basis data/migrasi/. File berisi konten berikut:.

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

/**
* Jalankan migrasi.
*
* @kembali batal
*/
fungsi publik ke atas()

Skema::buat('pekerjaan', fungsi (Cetak Biru $tabel)
$table->bigIncrements('id');
$tabel->string('antrian')->index();
$table->longText('payload');
$table->unsignedTinyInteger('attempts');
$table->unsignedInteger('reserved_at')->nullable();
$table->unsignedInteger('available_at');
$tabel->unsignedInteger('created_at');
);

/**
* Membalikkan migrasi.
*
* @kembali batal
*/
fungsi publik turun()

Skema::dropIfExists('pekerjaan');

Jalankan perintah berikut dari terminal untuk membuat pekerjaan meja.

$ php artisan bermigrasi

Buat Kelas Email

Anda harus membuat kelas mailable untuk mengirim email dari aplikasi Laravelvel. Jalankan perintah berikut untuk membuat kelas email bernama Mengirim email di lokasi aplikasi/Mail.

$ php artisan make:mail KirimEmail

Isi kelas ini ditunjukkan di bawah ini. Lihat nama file yang digunakan dalam membangun() metode akan dibuat di bagian selanjutnya dari tutorial ini.

aplikasi namespace\Mail;
gunakan Illuminate\Bus\Queueable;
gunakan Illuminate\Contracts\Queue\ShouldQueue;
gunakan Illuminate\Mail\Mailable;
gunakan Illuminate\Queue\SerializesModels;
kelas SendEmail memperluas Mailable

gunakan Queueable, SerializesModels;
/**
* Buat contoh pesan baru.
*
* @kembali batal
*/
fungsi publik __construct()

//

/**
* Bangun pesannya.
*
* @kembalikan $ini
*/
membangun fungsi publik ()

/* Tentukan nama tampilan yang akan digunakan untuk template email */
return $this->view('email');

Buat Tampilan

Buat file tampilan bernama surel.Pedang.php dengan konten berikut yang akan dikirim sebagai badan email.

Selamat datang di Petunjuk Linux


Pelajari Laravel dengan mudah

Buat Kelas Pekerjaan

Jalankan perintah berikut untuk membuat kelas pekerjaan. Nama file kelas pekerjaan bernama Mengirim Email.php akan dibuat di lokasi aplikasi/Pekerjaan.

$ php artisan make:pekerjaan MengirimEmail

Isi dari Mengirim Email.php ditunjukkan di bawah ini. Anda harus menetapkan alamat email yang valid di dalam untuk() metode menangani() berfungsi untuk menguji apakah kode berfungsi dengan benar. Tetapkan alamat email yang valid sebagai ganti 'Alamat Email Penerima' di dalam untuk() metode untuk memeriksa apakah antrian berfungsi dengan baik.

aplikasi namespace\Pekerjaan;
gunakan Illuminate\Bus\Queueable;
gunakan Illuminate\Contracts\Queue\ShouldQueue;
gunakan Illuminate\Foundation\Bus\Dispatchable;
gunakan Illuminate\Queue\InteractsWithQueue;
gunakan Illuminate\Queue\SerializesModels;
/* Menambahkan paket yang diperlukan */
menggunakan Surat;
gunakan App\Mail\SendEmail;
kelas SendingEmail mengimplementasikan ShouldQueue

gunakan Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/**
* Buat contoh pekerjaan baru.
*
* @kembali batal
*/
fungsi publik __construct()

//

/**
* Jalankan pekerjaan.
*
* @kembali batal
*/
pegangan fungsi publik()

/* Membuat objek dari kelas mailable dan mengirim email */
$email = baru SendEmail();
/* Tetapkan alamat email yang valid */
Mail::to('Alamat Email Penerima')->send($email);

Buat Pengontrol

Jalankan perintah berikut untuk membuat pengontrol untuk menangani antrian. Ketika menanganiAntrian() fungsi pengontrol dijalankan, pekerjaan antrian akan didorong dan email akan dikirim.

$ php artisan make:controller SendEmailController

KirimEmailController.php

namespace App\Http\Controllers;
gunakan Illuminate\Http\Request;
/* Tambahkan paket yang diperlukan */
gunakan App\Jobs\SendingEmail;
gunakan Karbon\Karbon;
kelas SendEmailController memperluas Controller

/**
* Menggunakan Antrian Laravel
*/
fungsi publik handleQueue()

/* Dorong pekerjaan baru dalam antrian pekerjaan */
pengiriman(PengirimanEmail baru());
/* Mencetak pesan setelah mengirim email */
echo 'Email telah terkirim';

Tambahkan Rute

Buka jaring.php file dari rute folder dan tambahkan rute berikut untuk menjalankan pekerjaan antrian menggunakan pengontrol.

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

Jalankan URL berikut di browser untuk memeriksa apakah kode berfungsi. Buka alamat email penerima untuk memeriksa apakah email baru telah diterima.

http://localhost:8000/emailqueue

Tambahkan Penundaan

Buka Mengirim Email.php file lagi dan ubah konten menanganiAntrian() berfungsi untuk menambahkan penundaan lima detik ke pekerjaan antrian.

namespace App\Http\Controllers;
gunakan Illuminate\Http\Request;
/* Tambahkan paket yang diperlukan */
gunakan App\Jobs\SendingEmail;
gunakan Karbon\Karbon;
kelas SendEmailController memperluas Controller

/**
* Menggunakan Antrian Laravel
*/
fungsi publik handleQueue()

/* Buat objek antrian baru dengan penundaan 5 detik */
$emailJob = (New SendingEmail())->delay(Carbon::now()->addSeconds(5));
/* Dorong pekerjaan baru dalam antrian pekerjaan */
pengiriman($emailPekerjaan);
/* Mencetak pesan setelah mengirim email */
echo 'Email Terkirim setelah lima detik';

Sekali lagi, jalankan URL berikut di browser untuk memeriksa apakah kode berfungsi. Di sini, email akan dikirim setelah lima detik, menggunakan metode delay() lima detik.

http://localhost:8000/emailqueue

Periksa kotak masuk alamat email penerima untuk mengetahui apakah email baru telah diterima setelah 5 detik. Email dengan konten berikut akan diterima jika pekerjaan antrian berfungsi dengan baik.

Kesimpulan

Tutorial ini menunjukkan penggunaan antrian Laravel yang sangat sederhana. Anda dapat menggunakan antrian Laravel untuk berbagai tujuan, berdasarkan kebutuhan aplikasi Anda. Saya harap tutorial ini telah membantu pembaca untuk lebih memahami konsep dasar antrian Laravel.

Kontrol & kelola gerakan mouse di antara beberapa monitor di Windows 10
Manajer Mouse Tampilan Ganda memungkinkan Anda mengontrol & mengonfigurasi gerakan mouse di antara beberapa monitor, dengan memperlambat gerakannya di...
WinMouse memungkinkan Anda menyesuaikan & meningkatkan gerakan penunjuk tetikus di PC Windows
Jika Anda ingin meningkatkan fungsi default penunjuk tetikus Anda, gunakan freeware WinMouse. Ini menambahkan lebih banyak fitur untuk membantu Anda m...
Tombol klik kiri mouse tidak berfungsi pada Windows 10
Jika Anda menggunakan mouse khusus dengan laptop, atau komputer desktop, tetapi but tombol klik kiri mouse tidak berfungsi pada Windows 10/8/7 untuk b...