Skip to main content
Docsاركضتشغيلات مجدولة

تشغيلات مجدولة

- تحديد أنواع الجداول الأربعة - CRON / INTERVAL / TIME / DELAYED COMPLETION-along with time zone handling and chained workflow triggers.

مبرمج (برايدرون) يدعم أربعة أنواع من الزناد (الكرون) (التعبير المتكرر) و (إنترفال) (الفصل الثابت) و (اليوم الواحد) و (ديلايفد) كل الجداول تُدار مركزياً من قبل خدمة الجدولة للمنصة و تستمر في إطلاق النار على جداولهم الزمنية الخاصة بعد إعادة الخدمة.

المفهوم: الجدول الزمني والتنفيذ

جدول يصف "متى نطلق" كل محفز يخلق تنفيذاً واحداً جدول زمني هو شيء طويل الأجل، في حين أن تنفيذ هو سجل واحد. أي جدول يُمْكِنُ أَنْ يَحْملَ a مجموعة ثابتة مِنْ المدخلاتِ (الزوجان ذو القيمةِ الرئيسية) الذي يَستعملُ كمتغيرات مدخلاتِ التنفيذِ على كُلّ محفز.

ويحتفظ كل جدول بزمنها الزمني الخاص به (وهو اسم الرابطة الدولية للملاحة الجوية مثل آسيا/شنغهاي)، وحساب الخادم يحفز الأوقات ضده. الخلق عبر شبكة الـ (أو آي) على شبكة الويب للزمن الحالي لحسابك، عندما يخلق عبر الـ (آي إيه).

أنواع الجداول الأربعة

النوعالميادين الرئيسيةالسلوك
CRONcronExpression, timezoneحرائق متكررة بـ 5 حقل من التعبيرات الكرونية
INTERVALinterval, startTime, endTimeيشعل كل عدد ثابت من الألف ثانية، مع بداية ونهاية اختيارية
ONE_TIMEstartTimeحرائق مرة في الوقت المحدد، ثم يمكن اختراقها
DELAYED_COMPLETIONtriggerWorkflowId, delaySecondsبعد ثوانٍ من اكتمال سير العمل في أعلى المجرى بنجاح، لسلاسل سير العمل

وتتقاسم الأنواع الأربعة مجموعة مشتركة من المجالات: مُمكّن (سواء كان نشطا)، وماكسرونز (حسب الزناد الأقصى)، ومدخلات (متغيرات المدخلات الإحصائية). وعندما يمر الوقت النهائي، أو يصل عدد الزناد إلى ماكسرونز، يكون الجدول آليا ولكن لم يحذف.

إنشاء جدول CRON

bash
curl -X POST https://braidrun.com/api/schedules \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "workflowId": "<workflow-id>",
    "name": "Daily 9 AM report",
    "scheduleType": "CRON",
    "cronExpression": "0 9 * * *",
    "timezone": "Asia/Shanghai",
    "inputs": {
      "environment": "production"
    }
  }'

التعبير الكروني هو خمسة حقل: ساعة من يوم الشهر وهو يؤيد *، قوائم )٥,٣ ١( ونطاقات )١-٥( وخطوات )*/٦(؛ ويمكن كتابة يوم الأحد على أنه صفر أو ٧. الأوقات العصيبة محسوبة ضد وقت الجدول.

التعبيرالمعنى
0 9 * * *كل يوم 09:00
0 9 * * 1-5أيام الأسبوع 09:00
0 */6 * * *كل 6 ساعات
30 14 1 * *الساعة 14:30 في الأول من كل شهر

في نشر متعدد المقاطعات، قفل موزع يبطل كل نقطة من نقاط إطلاق النار: فقط عقدة واحدة تبدأ في التنفيذ،.

الإنتربول: فترات ثابتة

وتذهب هيئة الطلب إلى POST/api/schedules تماما مثل CRON، وتختلف المجالات فقط:

json
{
  "workflowId": "<workflow-id>",
  "name": "每 5 分钟同步一次",
  "scheduleType": "INTERVAL",
  "interval": 300000,
  "startTime": 1785542400000,
  "endTime": 1788220800000,
  "maxRuns": 500
}
  • interval — فترة الزناد في الألف ثانية؛ ترتفع القيم دون الثانية إلى ثانية واحدة
  • startTime / endTime — اختيارياً، مصباحاً من طراز (بوتش ميللي) الثاني، وإذا ما تم تحديد وقت بدء تشغيله، فإنه ينتظر حتى تلك اللحظة قبل بدء التشغيل، ويصبح قابلاً للتشويه بمجرد مرور الوقت النهائي
  • maxRuns — الاختيارية؛ والقابلة للتشهير بعد إطلاق النار على هذا العدد مرات عديدة

مرة واحدة

json
{
  "workflowId": "<workflow-id>",
  "name": "上线前补跑一次",
  "scheduleType": "ONE_TIME",
  "startTime": 1785546000000
}

البداية هي مصباح ثانوي وبعد إطلاق النار مرة واحدة في ذلك الوقت، فإن الجدول غير قابل للتشهير؛ وفي نشر متعدد المقاطعات، يكفل قفل لمرة واحدة فقط إطلاق النار.

الجدول الزمني المفصل

DELAYED -COMPLETION chains two work flows: each time upstream workflow A endes with COMPLETED status, it waits delaySeconds seconds and then automatically triggers workflow B bound to this schedule. الاستخدام المثالي: تشغيل سير العمل في التقرير تلقائيا بعد 10 دقائق من انتهاء تدفق العمل بالبيانات.

json
{
  "workflowId": "<workflow-B-id>",
  "name": "A 完成 10 分钟后跑 B",
  "scheduleType": "DELAYED_COMPLETION",
  "triggerWorkflowId": "<workflow-A-id>",
  "delaySeconds": 600,
  "maxRuns": 10
}
  • يُحسب ما إذا كان (أ) قد تم إطلاقه يدوياً، من قبل (ويهوك) حسب الجدول الزمني، أو من قبل سلسلة، طالما أنه يُكمل بنجاح،
  • delaySeconds — مطلوبة، من صفر إلى 30 يوما (2592000 ثانية)؛ لا يعني الإطلاق فور الانتهاء
  • maxRuns — سلاسل غير محدودة؛ سلاسل واحدة فقط مرة واحدة؛ سلاسل N في معظم الأوقات،
  • triggerWorkflowId — لا يُمكنها أن تُعادل سير العمل (الانتعاش الذاتي سيستمر إلى الأبد) و يحتاج المُبدِع إلى إذن من المُشاهدة على سير العمل
  • وريثما يتم تخزين الزناد المؤجلة بشكل مكثف و البقاء على قيد الحياة في خدمة من جديد أو إطلاق متجدد: يطلقون النار كالعادة عندما يحين الوقت

إدارة الجداول الزمنية

نقطة النهايةالغرض
GET /api/schedulesإدراج جميع الجداول المرئية
GET /api/schedules/{id}مشاهدة واحدة
PUT /api/schedules/{id}آخر المستجدات؛ والميادين هي نفس الحقول بالنسبة للإبداع، وتغيير نوع التجديدات ضد النوع الجديد
DELETE /api/schedules/{id}تحذف
POST /api/schedules/{id}/toggleالقدرة/العجز
POST /api/schedules/{id}/runاركضي على الفور، تجاوزي الجدول الزمني
GET /api/schedules/{id}/historyتاريخ المثلث
GET /api/schedules/workflows/{workflowId}قائمة بجميع الجداول في إطار تدفق عمل معين
bash
# 立即执行一次(返回这次 execution)
curl -X POST https://braidrun.com/api/schedules/<schedule-id>/run \
  -H "Authorization: Bearer <token>"

# 停用(enabled=true 则启用;不带参数则在两者间切换)
curl -X POST "https://braidrun.com/api/schedules/<schedule-id>/toggle?enabled=false" \
  -H "Authorization: Bearer <token>"

# 最近 50 条触发历史
curl "https://braidrun.com/api/schedules/<schedule-id>/history?limit=50" \
  -H "Authorization: Bearer <token>"

مُمكّن من النضال يمكن أن يُدخل في مُقدّم إستفسار أو جسم (الجوسون)... إن لم يُمرّ، فإنّه ينقلب بين المُمكن والمعاقين. ويتضمن كل سجل تاريخي الحالة، وعلم النجاح، والبدء والنهاية؛ والحد من العجز إلى 50، و 500.

المدخلات المشتركة والإعدادات المسبقة للمعلمات

إلى جانب وضع المدخلات مباشرة على جدول زمني، يمكنك أن تخلق "مفترقات" لتدفق العمل: تشغيل نفس تدفق العمل تحت مجموعات مفترسات مختلفة لتشكيلات مختلفة.

bash
# 创建一个参数预设
curl -X POST https://braidrun.com/api/workflows/<wf>/presets \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "生产环境",
    "description": "生产环境参数",
    "variables": {
      "environment": "production",
      "debug_mode": "false",
      "max_retries": "3"
    }
  }'

# 用预设触发执行
curl -X POST https://braidrun.com/api/workflows/<wf>/presets/<id>/execute \
  -H "Authorization: Bearer <token>"

تزامن دفعة سير العمل المتعددة

حدد عناصر متعددة من قائمة سير العمل وانقر على "التنفيذ المتزامن" لبدء مجموعة من عمليات التنفيذ في المرة الواحدة.

  • سيقوم كل سير عمل محدد بإنشاء سجل التنفيذ الخاص به
  • التنفيذ الذي يتجاوز maxConcurrency سيدخل أولاً في حالة انتظار
  • بعد اكتمال التنفيذ الذي كان قيد التشغيل مسبقًا، يتم تحويل التنفيذ التالي في قائمة الانتظار تلقائيًا إلى RUNNING
  • 0 يشير إلى عدم وجود حد ويبدأ الدفعة بأكملها في نفس الوقت

يتحكم التزامن في المستوى الأعلى لسير العمل في تزامن الطبقة نفسها داخل DAG الداخلي لسير عمل واحد؛ الاثنان لا يتداخلان مع بعضهما البعض.

السلوك بعد إعادة تشغيل الخدمة

  • التنفيذ المُثار: يتم مقاطعة الإعداد الافتراضي ما لم يتم تمكين المتابعة التلقائية (انظرReart and automatic resume)
  • CRON / INTERVAL / TIME الجداول التي لم تأت بعد: اطلاق النار كالعادة بعد العودة
  • في انتظار إطلاق النار المؤجلة: لا يزالون ينتظرون ويطلقون النار في الوقت المناسب
  • نقاط الزناد المفقودة أثناء فترة التوقف: لا يوجد مكياج (لتجنب خطر الكتابة المزدوجة)

الصفحات ذات الصلة