Edge Computing with Cloudflare Workers & Deno · درس

مشغلات Cron وWorkers المجدولة

شغّل Cloudflare Workers وفق جدول زمني باستخدام Cron Triggers لأتمتة المهام الخلفية المتكررة على الحافة.

الدرس 4 من 413 خطوة

مشغلات Cron وWorkers المجدولة درس مجاني في Edge Computing with Cloudflare Workers & Deno على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Edge Computing with Cloudflare Workers & Deno، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Edge Computing with Cloudflare Workers & Deno 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

Why Scheduled Workers?

Beyond responding to HTTP requests, Workers can run on a schedule using Cron Triggers.

This is perfect for recurring jobs such as:

  • Cleaning up stale data in KV or D1
  • Sending daily report emails
  • Refreshing cached API responses
  • Aggregating analytics

No always-on server required, the Worker simply wakes up, runs, and goes back to sleep.

The scheduled() Handler

A scheduled Worker exports a scheduled() handler instead of (or alongside) fetch().

Cloudflare invokes it automatically at the times you define in cron expressions.

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

Configuring Cron in wrangler.toml

Cron schedules live in your wrangler.toml under the [triggers] section.

You can declare multiple cron expressions, each one fires the same scheduled() handler.

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

Cron Expression Syntax

Cloudflare cron expressions have five fields: minute, hour, day-of-month, month, day-of-week.

  • 0 0 * * * means midnight UTC every day
  • */5 * * * * means every 5 minutes
  • 0 9 * * 1 means 09:00 UTC every Monday

All times are in UTC.

Distinguishing Multiple Crons

When you register several cron schedules, use event.cron to tell which one fired.

This lets one Worker handle many jobs.

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

Using waitUntil for Long Tasks

Just like in fetch(), the ctx.waitUntil() method keeps the Worker alive until a promise resolves.

Use it to ensure background async work completes before the invocation ends.

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

Accessing Bindings in scheduled()

The env argument exposes all your bindings: KV, D1, R2, Queues, secrets.

A scheduled cleanup might delete expired KV keys.

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);
  }
}

Testing Crons Locally

Wrangler lets you test scheduled handlers without waiting for the real schedule.

Run wrangler dev and trigger via the test endpoint, or use the CLI flag.

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

Combining fetch() and scheduled()

A single Worker can export both handlers.

This is handy when the same logic serves HTTP requests and runs on a timer.

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

Monitoring Scheduled Runs

Cron invocations appear in the Cloudflare dashboard and in wrangler tail logs.

Watch for failures, a thrown error means the job did not complete, and there is no automatic retry for cron triggers.

wrangler tail --format pretty

Limits & Best Practices

Keep scheduled jobs efficient:

  • Stay within CPU time limits, offload heavy work to Queues
  • Make jobs idempotent so reruns are safe
  • Avoid sub-minute schedules unless necessary
  • Log results for observability

Quick Check

Which property tells you which cron schedule triggered the handler?

Recap

You learned how to run Workers on a schedule:

  • Export a scheduled() handler
  • Define schedules in [triggers] crons
  • Use five-field UTC cron expressions
  • Route with event.cron and keep work alive with ctx.waitUntil()
  • Test with --test-scheduled and monitor with wrangler tail

Cron Triggers turn Workers into reliable edge-native background job runners.

البدء مجانًا

تعلم Edge Computing with Cloudflare Workers & Deno مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
12
الدروس
47

الأسئلة الشائعة

هل درس «مشغلات Cron وWorkers المجدولة» مجاني؟

نعم — نص درس «مشغلات Cron وWorkers المجدولة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Edge Computing with Cloudflare Workers & Deno، انتقل إلى CoddyKit PRO. تتضمن دورة Edge Computing with Cloudflare Workers & Deno 4 دروس في المجموع.

ماذا ستتعلم في «مشغلات Cron وWorkers المجدولة»؟

شغّل Cloudflare Workers وفق جدول زمني باستخدام Cron Triggers لأتمتة المهام الخلفية المتكررة على الحافة. تتمرن على Edge Computing with Cloudflare Workers & Deno مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Edge Computing with Cloudflare Workers & Deno؟

لا تُشترط خبرة سابقة. Edge Computing with Cloudflare Workers & Deno على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «مشغلات Cron وWorkers المجدولة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Edge Computing with Cloudflare Workers & Deno هذا؟

نعم. كل درس في Edge Computing with Cloudflare Workers & Deno يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. WebSockets والتحديث الفوري
  2. قوائم الانتظار والمهام غير المتزامنة
  3. ارتباطات الخدمات والتكاملات
  4. مشغلات Cron وWorkers المجدولة
← العودة إلى Edge Computing with Cloudflare Workers & Deno