您可以將短期工作流程做為工作執行。執行工作: 說明如何在應用程式下執行工作。
您也可以使用 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 排程,可以使用多個 Job 達成。
管理工作和時間表
使用 kf jobs
指令,查看目前 Space 中所有已排程和未排程的工作:
$ 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
這項指令會暫停 Job,並停止依先前的排程建立 Task。工作不會遭到刪除,kf schedule-job
可以再次排定工作,繼續執行。
刪除工作
您可以使用 kf delete-job
指令刪除整個 Job:
kf delete-job test-job
這項指令會刪除工作,以及工作建立的所有工作 (包括排定和手動執行的工作)。如果仍有任何工作正在執行,這項指令會強制刪除這些工作。
如要確保執行中的工作不會中斷,請先使用 kf delete-job-schedule
刪除工作排程,等待所有工作完成,然後呼叫 kf delete-job
刪除工作。