אפשר להריץ תהליכי עבודה לטווח קצר כמשימות. במאמר הפעלת Tasks מוסבר איך להפעיל את Tasks בקטע 'אפליקציות'.
אפשר גם לתזמן את המשימות להפעלה במרווחי זמן חוזרים שמוגדרים באמצעות הפורמט unix-cron. כדי לתזמן משימות, קודם צריך להפעיל אפליקציה שמריצה את המשימה, כמו במשימה לא מתוזמנת, ואז ליצור עבודה כדי לתזמן את המשימה.
אפשר להגדיר ל-Task תזמון כך שהוא יפעל כמה פעמים ביום, או בימים ובחודשים ספציפיים.
העברת אפליקציה להרצת משימות מתוזמנות
משכפלים את מאגר test-app.
git clone https://github.com/cloudfoundry-samples/test-app test-appcd test-appדחיפה של האפליקציה.
מבצעים Push של האפליקציה באמצעות הפקודה
kf push APP_NAME --task. הדגל--taskמציין שהאפליקציה מיועדת להרצת משימות, ולכן לא ייווצרו מסלולים באפליקציה והיא לא תופעל כאפליקציה לטווח ארוך.kf push test-app --taskכדי לוודא שלא נוצרו מופעים או מסלולים של האפליקציה, מציגים את רשימת האפליקציות.
kf appsשימו לב שהאפליקציה לא מופעלת ואין לה כתובות URL.
Listing Apps in Space: test-space Name Instances Memory Disk CPU URLs test-app stopped 1Gi 1Gi 100m <nil>
יצירת משרה
כדי להריץ משימה לפי לוח זמנים, קודם צריך ליצור Job שמתאר את המשימה.
kf create-job test-app test-job "printenv"המשימה מתחילה במצב השהיה או לא מתוזמנת, ולא יוצרת משימות עד שהיא מופעלת באופן ידני על ידי kf run-job או מתוזמנת על ידי kf schedule-task.
הפעלה ידנית
אפשר להריץ משימות אד-הוק, בדומה להרצת משימות באמצעות kf run-task. האפשרות הזו יכולה להיות שימושית לבדיקת העבודה לפני שתזמנו אותה או תפעילו אותה לפי הצורך, בנוסף לתזמון.
kf run-job test-jobהפקודה הזו מריצה את המשימה שהוגדרה על ידי העבודה פעם אחת באופן מיידי.
תזמון משימה
כדי לתזמן את ההפעלה של העבודה, צריך לספק תזמון unix-cron בפקודה kf schedule-job.
kf schedule-job test-job "* * * * *"הפקודה הזו מפעילה את העבודה ליצירת משימות באופן אוטומטי לפי לוח הזמנים שצוין. בדוגמה הזו, משימה מופעלת כל דקה.
כדי לעדכן את לוח הזמנים של משימה, מריצים את הפקודה kf schedule-task עם לוח זמנים חדש.
למשימות ב-Kf יכול להיות רק תזמון cron אחד. זה שונה מ-PCF Scheduler שמאפשר כמה לוחות זמנים למשימה אחת.
אם אתם צריכים כמה תזמונים של cron, אתם יכולים להשיג זאת באמצעות כמה משימות.
ניהול משרות ולוחות זמנים
כדי לראות את כל המשימות, גם אלה שנקבע להן מועד וגם אלה שלא, במרחב הנוכחי, משתמשים בפקודה kf jobs.
$ kf jobs
Listing Jobs in Space: test space
Name Schedule Suspend LastSchedule Age Ready Reason
test-job * * * * * <nil> 16s 2m True <nil>
unscheduled-job 0 0 30 2 * true 16s 2m True <nil>
בנוסף, אפשר להציג רק משימות שמתוזמנות באופן פעיל באמצעות הפקודה kf job-schedules.
$ kf job-schedules
Listing job schedules in Space: test space
Name Schedule Suspend LastSchedule Age Ready Reason
test-job * * * * * <nil> 16s 2m True <nil>
שימו לב שהערך unscheduled-job לא מופיע בפלט kf job-schedules.
ביטול התזמון של עבודה
אפשר להפסיק עבודה מתוזמנת באמצעות הפקודה kf delete-job-schedule.
kf delete-job-schedule test-jobהפקודה הזו משעה את העבודה ומפסיקה את יצירת המשימות לפי התזמון הקודם.
העבודה לא נמחקת ואפשר לתזמן אותה מחדש על ידי kf schedule-job כדי להמשיך בהרצה.
מחיקת משרה
אפשר למחוק את כל העבודה באמצעות הפקודה kf delete-job.
kf delete-job test-jobהפקודה הזו מוחקת את העבודה ואת כל המשימות שנוצרו על ידי העבודה, גם משימות מתוזמנות וגם משימות שבוצעו באופן ידני. אם יש משימות שעדיין פועלות, הפקודה הזו תמחק אותן בכוח.
אם רוצים לוודא שהמשימות הפעילות לא יופרעו, צריך קודם למחוק את לוח הזמנים של העבודות באמצעות kf delete-job-schedule, לחכות עד שכל המשימות יושלמו ואז למחוק את העבודה באמצעות קריאה ל-kf delete-job.