Membuat dan Mengirimkan Job
Buat class job dengan Artisan dan kirimkan dari controller.
Membuat dan Mengirimkan Job adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.
Apa Itu Tugas
Tugas adalah kelas PHP yang merangkum satu unit pekerjaan dalam antrean. Setiap tugas menerapkan handle(), yang dipanggil oleh pekerja antrean untuk menjalankan pekerjaan tersebut.
Membuat Tugas
Gunakan Artisan untuk membuat kelas tugas. Opsi --queue membuatnya dapat dimasukkan ke antrean (secara bawaan).
$ php artisan make:job SendWelcomeEmailStruktur Kelas Tugas
Tugas memiliki metode handle() dan dapat menerima data melalui konstruktornya.
<?php
namespace App\Jobs;
use App\Models\User;
use App\Mail\WelcomeEmail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\SerializesModels;
class SendWelcomeEmail implements ShouldQueue
{
use Dispatchable, Queueable, SerializesModels;
public function __construct(private User $user) {}
public function handle(): void
{
Mail::to($this->user)->send(new WelcomeEmail($this->user));
}
}Mengirim Tugas
Kirim tugas dari mana saja di aplikasi Anda.
<?php
// Dispatch to queue:
SendWelcomeEmail::dispatch($user);
// Dispatch with delay:
SendWelcomeEmail::dispatch($user)->delay(now()->addMinutes(10));
// Dispatch synchronously (bypass queue):
SendWelcomeEmail::dispatchSync($user);Pembantu Pengiriman
Anda juga dapat menggunakan pembantu global dispatch().
<?php
dispatch(new SendWelcomeEmail($user))
->onQueue("emails")
->delay(now()->addHour());onQueue()
Tentukan antrean bernama tertentu saat mengirim tugas.
<?php
SendWelcomeEmail::dispatch($user)->onQueue("emails");onConnection()
Tentukan koneksi antrean tertentu (misalnya, SQS untuk satu tugas dan Redis untuk tugas lainnya).
<?php
SendWelcomeEmail::dispatch($user)->onConnection("sqs");Serialisasi Model
Sifat SerializesModels memastikan model Eloquent yang diteruskan ke tugas diserialisasikan berdasarkan ID dan diambil ulang dari basis data oleh pekerja — sehingga data usang dapat dihindari.
afterResponse()
Kirim tugas setelah respons HTTP dikirim kepada pengguna — pengguna tidak perlu menunggu biaya tambahan pengiriman.
<?php
App::terminating(fn () => SendWelcomeEmail::dispatch($user));Menguji Tugas
Gunakan Queue::fake() dalam pengujian untuk memastikan tugas dikirim tanpa benar-benar menjalankannya.
<?php
Queue::fake();
$this->post("/register", $data);
Queue::assertPushed(SendWelcomeEmail::class);Tugas Unik
Terapkan ShouldBeUnique untuk mencegah tugas duplikat dengan data yang sama menumpuk di antrean.
Ringkasan
Buat tugas dengan Artisan. Terapkan ShouldQueue dan handle(). Kirim dengan ::dispatch(). Tentukan antrean dengan onQueue(). Uji dengan Queue::fake().
Pemeriksaan Singkat
Antarmuka mana yang membuat kelas tugas dapat dimasukkan ke antrean?
Belajar PHP dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 49
- Pelajaran
- 195
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Membuat dan Mengirimkan Job” gratis?
Ya — teks lengkap “Membuat dan Mengirimkan Job” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Membuat dan Mengirimkan Job”?
Buat class job dengan Artisan dan kirimkan dari controller. Kamu berlatih PHP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai PHP Academy?
Tidak diperlukan pengalaman sebelumnya. PHP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Membuat dan Mengirimkan Job” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran PHP Academy ini?
Ya. Setiap pelajaran PHP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Konsep Antrean dan Driver
- Membuat dan Mengirimkan Job
- Percobaan Ulang, Penundaan, dan Perantaian Job
- Memantau Antrean dengan Laravel Horizon