תיעוד

תזמון (cron)

הפעלת pipeline במרווחי זמן קבועים — יומי, שבועי, חודשי, או ביטוי cron שרירותי.

הערוץ schedule מפעיל pipeline לפי לוח זמנים מוגדר. זהו המקבילה של cron, אך מוגדר בעורך המודל ונרשם ביומן כמו כל ה-exchanges האחרים.

למה הערוץ הזה

לא כל ה-pipelines הם תגובתיים (לאימייל, לשיחה, ל-webhook). רבים מהם יזומים: דוח יומי, תזכורת שבועית, בדיקה שעתית של מערכת חיצונית. זה מה שהערוץ schedule מכסה.

הגדרה

  1. בעורך המודל, הגדירו את צומת ה-Start עם מקלט טריגר מתוזמן.
  2. בחרו:
    • לוח זמנים — הרכיבו אותו חזותית באמצעות ה-CronBuilder (יומי, שבועי או חודשי, בשעה שתבחרו), או עברו למצב מתקדם כדי להזין ביטוי cron קלאסי בן 5 שדות (0 8 * * 1-5 = 8:00 בימי חול). אין צורך בידע בתחביר cron.
    • אזור זמן — שם IANA (Europe/Paris, UTC…) שלפיו לוח הזמנים מפורש. ברירת מחדל: UTC.
    • Objectif — תווית חופשית (לדוגמה briefing_hebdo, alerte_impayes) המועברת ל-pipeline לצורך ניתובו.
    • כשפעימה מוחמצת — מדיניות ההשלמה (catchup), ראו בהמשך. ברירת מחדל: השלמת הכול.

pipeline אחד, מספר מטרות. אותו Start יכול לשאת מספר טריגרים מתוזמנים, כל אחד עם objectif שונה. תנאים (filter) בתחילת ה-pipeline מכוונים אז את הביצוע לפי המטרה שהתקבלה — לדוגמה תדריך שבועי ביום שני והתראה יומית באותה תבנית (ראו CFO IA).

מה ה-pipeline מקבל

בכל הפעלה, נוצר exchange עם:

  • schedule.objectif — תווית המטרה המוגדרת (לניתוב בין מספר טריגרים)
  • schedule.cron — ביטוי ה-cron המוגדר
  • schedule.occurrence — חותמת הזמן המתוכננת (UTC)
  • schedule.fired_at — חותמת הזמן בפועל של ההפעלה (UTC)
  • schedule.catchup — true אם הפעלה זו היא השלמה בדיעבד

סובלנות והשלמה בדיעבד

כל הפעלה נכנסת לתור עמיד לפני ביצועה: הפעלה מחדש של המערכת במהלך הביצוע אינה מאבדת אותה.

אם betool אינה זמינה ברגע ההפעלה (תחזוקה, תקלה), גורל המופעים שהוחמצו תלוי בהגדרה כשפעימה מוחמצת (catchup) של הטריגר:

בחירהערךהשפעה
השלמת הכול (ברירת מחדל)allהמופעים שהוחמצו מופעלים מחדש, בתוך חלון של 24 שעות ועד 12 המופעים האחרונים.
האחרונה בלבדrun_onceרק המופע האחרון שהוחמץ מופעל מחדש.
ללאskipאף מופע שהוחמץ אינו מופעל מחדש; ה-pipeline ממשיך בהפעלה המתוכננת הבאה.

מופע שהושלם מתבצע פעם אחת בלבד ומסומן schedule.catchup = true, כך שה-pipeline יכול לציין שדוח הופק באיחור. מופע שדולג במכוון (run_once, skip) מדולג לצמיתות: הוא אינו צץ מאוחר יותר, גם אם תשנו לאחר מכן את המדיניות.

מעבר לחלון של 24 השעות, דבר אינו מופעל מחדש: מוטב דוח חסר מאשר מבול של דוחות מאוחרים. טריגר שמעולם עוד לא הופעל אין לו מה להשלים.

בחרו האחרונה בלבד עבור מצב רגעי (סנכרון, בדיקה) שבו רק ההרצה האחרונה חשובה, ו-ללא כאשר הרצה מאוחרת כבר לא תהיה הגיונית (התראה שעתית, תזכורת בשעה קבועה).

תרחישי שימוש טיפוסיים

  • דוח יומי 8:00 — סוכן ששואל מספר מערכות, מסכם ושולח תדריך באימייל.
  • סנכרון שעתי — pipeline שמושך את הפריטים החדשים ממערכת חיצונית, מעביר אותם לסוכן classifier, ודוחף את התוצאות ל-CRM שלכם.
  • בדיקה שבועית — סוכן שמבקר את מצב התשתית ומסמן את הסטיות.
  • תזכורת J+7 — על לידים שהוגשו לפני שבוע ועדיין ללא מענה.

שיטות עבודה מומלצות

  • הימנעו מהתחלות בדקה עגולה — מערכות רבות פועמות ב-0 * * * *. העדיפו 7 * * * * כדי לפזר את העומס.
  • רשמו ביומן את המשימות שאין להן מה לעשות. משימה שמתבצעת אך אינה עושה דבר (כי אין פריט לטפל בו) צריכה לתעד זאת במפורש. אחרת, לא תוכלו להבחין בין «הכול בסדר» לבין «המשימה כבר לא מתבצעת».