بديل cron

احتفظ ببساطة cron وأضف عناصر التحكم التي تحتاجها بيئة الإنتاج.

يبقي Dagu الجداول الزمنية قريبة من سكربتاتك ويضيف graphs للـ dependencies وretries وlogs وhistory وreruns اليدوية وWeb UI.

من سطر cron إلى workflow
name: nightly-ops
schedule: "0 2 * * *"

steps:
  - id: extract
    run: python scripts/extract.py

  - id: transform
    run: ./bin/transform
    retry_policy:
      limit: 3
    depends: [extract]

  - id: notify
    run: ./scripts/slack-success.sh
    depends: [transform]

جداول على نمط cron داخل YAML

Dependencies بين الخطوات بدلاً من shell chains

إعادة تشغيل الخطوات الفاشلة من دون SSH يدوي

History وlogs داخل Web UI

At a glance

Cron مقابل Dagu

Dependencies
Dagu

Step graph أصلي.

Typical alternative

Shell chains وlock files وwrappers.

Retries
Dagu

سياسات retry لكل خطوة.

Typical alternative

Loops مخصصة أو reruns يدوية.

الرؤية
Dagu

Web UI وlogs وstatus وhistory.

Typical alternative

System logs واتفاقيات يدوية.

In depth

Where each tool fits

01

cron بسيط حتى تبدأ jobs بالاعتماد على بعضها

حالما تحتاج المهمة المجدولة إلى retries أو التقاط المخرجات أو ترتيب التنفيذ أو history واضحة، يتحول cron إلى مجموعة من wrapper scripts.

  • نمذج كل command كخطوة ذات اسم
  • استخدم dependencies بدلاً من shell chains الطويلة
  • افحص المخرجات الفاشلة وأعد التشغيل من Web UI
02

لا حاجة إلى migration لمنصة كاملة

يشغّل Dagu السكربتات الموجودة لديك كما هي. يمكن أن يبدأ أول migration من nightly job واحدة فقط.

  • احتفظ بـ Bash وPython وGo وJava وPHP وPerl
  • انقل الجداول إلى YAML قابل لإدارة النسخ
  • أضف timeouts وretries تدريجياً
03

رؤية تشغيلية بشكل افتراضي

يجمع Dagu حالة التنفيذ التي يبعثرها cron عادة بين syslog وملفات مخصصة ومعرفة الفريق.

  • اعرض الحالة الحالية وhistory وlogs
  • نفّذ يدوياً من دون الدخول إلى الخادم
  • استخدم notifications وخطوات لاحقة لمعالجة الفشل

FAQ

Practical questions before adopting Dagu

هل يدعم Dagu صيغة cron؟

نعم. يمكنك استخدام تعابير cron المألوفة مع الحصول على حالة workflow والتحكم في الخطوات.

هل يجب أن أعيد كتابة سكربتات cron؟

لا. ضع الأمر الحالي داخل خطوة Dagu ثم أضف dependencies وretries وnotifications عند الحاجة.

هل يحتاج إلى Kubernetes؟

لا. يمكن أن يبدأ Dagu كعملية واحدة على جهاز عادي ثم يتوسع لاحقاً إلى التنفيذ الموزع.

Next step

Start with one workflow.

Install Dagu, move one fragile script or agent task into YAML, and decide from a real run history.