Pengkomputeran Pinggir dengan Cloudflare Workers & Deno · Pelajaran

Pencetus Cron dan Workers Berjadual

Jalankan Cloudflare Workers mengikut jadual dengan Pencetus Cron untuk mengautomatikkan tugas latar berulang di tepi.

Pelajaran 4 daripada 413 langkah

Pencetus Cron dan Workers Berjadual ialah pelajaran Pengkomputeran Pinggir dengan Cloudflare Workers & Deno percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pengkomputeran Pinggir dengan Cloudflare Workers & Deno, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pengkomputeran Pinggir dengan Cloudflare Workers & Deno merangkumi sejumlah 4 pelajaran.

Mengapa Worker Berjadual?

Selain menjawab permintaan HTTP, Worker boleh berjalan mengikut jadual menggunakan Cron Triggers.

Ini sesuai untuk kerja berulang seperti:

  • Membersihkan data lapuk dalam KV atau D1
  • Menghantar e-mel laporan harian
  • Menyegarkan respons API yang dicache
  • Mengagregat analitik

Tiada pelayan yang perlu sentiasa hidup; Worker hanya bangun, berjalan dan kembali tidur.

Pengendali scheduled()

Worker berjadual mengeksport pengendali scheduled() dan bukannya (atau di samping) fetch().

Cloudflare memanggilnya secara automatik pada masa yang anda tentukan dalam ungkapan cron.

export default {
  async scheduled(event, env, ctx) {
    console.log('Triggered at: ' + event.scheduledTime);
  }
};

Mengkonfigurasi Cron dalam wrangler.toml

Jadual Cron disimpan dalam wrangler.toml anda di bawah bahagian [triggers].

Anda boleh mengisytiharkan beberapa ungkapan cron; setiap satunya mencetuskan pengendali scheduled() yang sama.

[triggers]
crons = ["0 * * * *", "*/15 * * * *"]

Sintaks Ungkapan Cron

Ungkapan cron Cloudflare mempunyai lima medan: minit, jam, hari dalam bulan, bulan, hari dalam minggu.

  • 0 0 * * * bermaksud tengah malam UTC setiap hari
  • */5 * * * * bermaksud setiap 5 minit
  • 0 9 * * 1 bermaksud 09:00 UTC setiap Isnin

Semua masa adalah dalam UTC.

Membezakan Beberapa Cron

Apabila anda mendaftarkan beberapa jadual cron, gunakan event.cron untuk mengenal pasti jadual yang dicetuskan.

Ini membolehkan satu Worker mengendalikan banyak kerja.

export default {
  async scheduled(event, env, ctx) {
    if (event.cron === '0 0 * * *') {
      await runDailyCleanup(env);
    } else if (event.cron === '*/15 * * * *') {
      await refreshCache(env);
    }
  }
};

Menggunakan waitUntil untuk Tugas Panjang

Sama seperti dalam fetch(), kaedah ctx.waitUntil() memastikan Worker terus hidup sehingga promise diselesaikan.

Gunakannya untuk memastikan kerja tak segerak di latar selesai sebelum pemanggilan berakhir.

async scheduled(event, env, ctx) {
  ctx.waitUntil(syncRemoteData(env));
}

Mengakses Ikatan dalam scheduled()

Argumen env mendedahkan semua ikatan anda: KV, D1, R2, Queues dan rahsia.

Pembersihan berjadual mungkin memadam kunci KV yang telah tamat tempoh.

async scheduled(event, env, ctx) {
  const list = await env.MY_KV.list({ prefix: 'session:' });
  for (const key of list.keys) {
    await env.MY_KV.delete(key.name);
  }
}

Menguji Cron Secara Setempat

Wrangler membolehkan anda menguji pengendali berjadual tanpa menunggu jadual sebenar.

Jalankan wrangler dev dan cetuskannya melalui titik akhir ujian, atau gunakan bendera CLI.

wrangler dev --test-scheduled
# then visit:
# http://localhost:8787/__scheduled?cron=0+*+*+*+*

Menggabungkan fetch() dan scheduled()

Satu Worker boleh mengeksport kedua-dua pengendali.

Ini berguna apabila logik yang sama melayan permintaan HTTP dan berjalan mengikut pemasa.

export default {
  async fetch(request, env) {
    return new Response('Hello from fetch');
  },
  async scheduled(event, env, ctx) {
    console.log('Hello from cron');
  }
};

Memantau Jalankan Berjadual

Pemanggilan Cron muncul dalam papan pemuka Cloudflare dan log wrangler tail.

Perhatikan kegagalan; ralat yang dilemparkan bermaksud kerja tidak selesai, dan tiada percubaan semula automatik untuk pencetus cron.

wrangler tail --format pretty

Had dan Amalan Terbaik

Pastikan kerja berjadual cekap:

  • Kekal dalam had masa CPU, pindahkan kerja berat kepada Queues
  • Jadikan kerja idempoten supaya pelaksanaan semula selamat
  • Elakkan jadual kurang daripada seminit kecuali perlu
  • Catat hasil untuk kebolehlihatan

Semakan Ringkas

Sifat manakah yang memberitahu anda jadual cron yang mencetuskan pengendali?

Imbas Kembali

Anda telah belajar cara menjalankan Worker mengikut jadual:

  • Eksport pengendali scheduled()
  • Tentukan jadual dalam [triggers] crons
  • Gunakan ungkapan cron UTC lima medan
  • Halakan dengan event.cron dan pastikan kerja terus hidup dengan ctx.waitUntil()
  • Uji dengan --test-scheduled dan pantau dengan wrangler tail

Cron Triggers mengubah Worker menjadi pelaksana kerja latar edge-native yang boleh dipercayai.

Percuma untuk bermula

Pelajari Pengkomputeran Pinggir dengan Cloudflare Workers & Deno dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
47

Soalan Lazim

Adakah pelajaran “Pencetus Cron dan Workers Berjadual” percuma?

Ya — teks penuh “Pencetus Cron dan Workers Berjadual” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Pengkomputeran Pinggir dengan Cloudflare Workers & Deno, tingkat taraf kepada CoddyKit PRO. Kursus Pengkomputeran Pinggir dengan Cloudflare Workers & Deno merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Pencetus Cron dan Workers Berjadual”?

Jalankan Cloudflare Workers mengikut jadual dengan Pencetus Cron untuk mengautomatikkan tugas latar berulang di tepi. Anda berlatih Pengkomputeran Pinggir dengan Cloudflare Workers & Deno menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Pengkomputeran Pinggir dengan Cloudflare Workers & Deno?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Pengkomputeran Pinggir dengan Cloudflare Workers & Deno di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Pencetus Cron dan Workers Berjadual” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pengkomputeran Pinggir dengan Cloudflare Workers & Deno ini?

Ya. Setiap pelajaran Pengkomputeran Pinggir dengan Cloudflare Workers & Deno menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. WebSockets & Masa Nyata
  2. Baris Gilir & Tugas Tak Segerak
  3. Pengikatan Perkhidmatan & Integrasi
  4. Pencetus Cron dan Workers Berjadual
← Kembali ke Pengkomputeran Pinggir dengan Cloudflare Workers & Deno