Data & layanan

Antrean & penjadwal

Tunda pekerjaan ke antrean dalam memori dan jalankan tugas berkala melalui Artisan.

Beta · v0.2.0API Lanjit masih dapat berubah sebelum versi stabil. Periksa catatan rilis dan panduan peningkatan sebelum memperbarui.

Pengelola antrean menampung job yang dapat diproses di luar alur permintaan. Penjadwal menjalankan callback yang jatuh tempo berdasarkan interval.

Mendaftarkan job

app.make('queue').register('send-email', async (payload) => {
  await mailer.send(payload.to, payload.subject);
});

Dispatch job dengan nama dan payload:

app.make('queue').dispatch('send-email', {
  to: 'user@example.com',
  subject: 'Selamat datang',
});

Menjalankan antrean

node artisan queue:run

Implementasi saat ini memakai antrean in-memory. Job tidak bertahan ketika proses dihentikan, sehingga gunakan ini sebagai fondasi pengembangan sebelum persistent driver tersedia.

Scheduled task

Daftarkan task di routes/console.js.

export default function commands({ schedule, app }) {
  schedule.call(async () => {
    await app.make('log').info('Cleanup started');
  }).hourly();

  schedule.call(() => refreshMetrics()).everyFiveMinutes();
}

Interval yang tersedia:

  • everyMinute()
  • everyFiveMinutes()
  • hourly()

Menjalankan scheduler

node artisan schedule:run

Panggil perintah tersebut setiap menit melalui cron atau scheduler platform produksi. Hanya task yang jatuh tempo yang akan dijalankan.

Edit halaman ini di GitHub

Ketik untuk mencari di seluruh dokumentasi.