您可以將短暫工作流程當做工作執行。「執行工作」一文說明如何在「應用程式」下執行工作。
您也可以使用 unix-cron 格式,排定工作在週期性間隔執行。使用排定的工作時,您必須先推送執行工作的應用程式,就像使用未排定的工作一樣,然後再建立工作來排定工作。
您可以定義排程,讓工作一天多次執行,或在特定日期和月份執行。
推送應用程式,以便執行排程工作
複製 test-app 存放區。
git clone https://github.com/cloudfoundry-samples/test-app test-app
cd test-app
推送應用程式。
使用
kf push APP_NAME --task
指令推送應用程式。--task
旗標表示應用程式用於執行工作,因此不會在應用程式上建立路徑,也不會部署為長時間執行的應用程式。kf push test-app --task
列出應用程式,確認系統未建立任何應用程式執行個體或路徑。
kf apps
請注意,應用程式未啟動,且沒有網址。
Listing Apps in Space: test-space Name Instances Memory Disk CPU URLs test-app stopped 1Gi 1Gi 100m <nil>
建立工作
如要依排程執行工作,您必須先建立描述工作內容的工作。
kf create-job test-app test-job "printenv"
工作會以暫停或未排程的狀態開始,除非由 kf run-job
手動執行或由 kf schedule-task
排程,否則不會建立工作。
手動執行
您可以臨時執行工作,類似於透過 kf run-task
執行工作。這個選項可用來在排程前測試工作,或視需要在排程外執行。
kf run-job test-job
這個指令會立即執行工作定義的任務一次。
排定工作
如要排定工作執行時間,您必須在 kf schedule-job
指令中提供 Unix-Cron 排程。
kf schedule-job test-job "* * * * *"
這個指令會觸發工作,讓工作在指定的時間表上自動建立工作。在本範例中,工作會每分鐘執行一次。
您可以執行 kf schedule-task
並搭配新的排程,更新工作的排程。Kf 中的工作只能有一個 cron 排程。這與 PCF 排程器不同,後者允許單一工作有多個排程。如果您需要多個 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
刪除工作。