단기 워크플로를 태스크로 실행할 수 있습니다. 태스크 실행에서는 앱에서 태스크를 실행하는 방법을 설명합니다.
unix-cron 형식을 사용하여 지정된 반복되는 주기로 태스크가 실행되도록 예약할 수도 있습니다. 예약된 태스크에서는 예약되지 않은 태스크와 마찬가지로 먼저 태스크를 실행하는 앱을 푸시한 후 작업을 만들어 태스크를 예약합니다.
태스크가 하루에 여러 번 실행되거나 특정 날짜와 특정 달에 실행되도록 일정을 정의할 수 있습니다.
예약된 태스크 실행을 위한 앱 푸시
테스트 앱 저장소를 클론합니다.
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
앱이 시작되지 않으며 URL이 없습니다.
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
이 명령어는 작업에서 정의한 태스크를 즉시 1회 실행합니다.
작업 예약
작업을 실행하도록 예약하려면 kf schedule-job
명령어에 unix-cron 일정을 제공해야 합니다.
kf schedule-job test-job "* * * * *"
이 명령어는 지정된 일정에 따라 태스크를 자동으로 만들도록 작업을 트리거합니다. 이 예에서는 태스크가 1분마다 실행됩니다.
새 일정을 사용해 kf schedule-task
를 실행하면 작업 일정을 업데이트할 수 있습니다.
Kf의 작업에는 크론 일정이 하나만 있을 수 있습니다. 단일 작업에 여러 일정을 허용하는 PCF Scheduler와는 다릅니다.
여러 크론 일정이 필요하면 작업을 여러 개 실행하면 됩니다.
작업 및 일정 관리
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
을 호출하여 작업을 삭제합니다.