태스크 예약

단기 워크플로를 태스크로 실행할 수 있습니다. 태스크 실행에서는 앱에서 태스크를 실행하는 방법을 설명합니다.

unix-cron 형식을 사용하여 지정된 반복되는 주기로 태스크가 실행되도록 예약할 수도 있습니다. 예약된 태스크에서는 예약되지 않은 태스크와 마찬가지로 먼저 태스크를 실행하는 앱을 푸시한 후 작업을 만들어 태스크를 예약합니다.

태스크가 하루에 여러 번 실행되거나 특정 날짜와 특정 달에 실행되도록 일정을 정의할 수 있습니다.

예약된 태스크 실행을 위한 앱 푸시

  1. test-app 저장소를 클론합니다.

    git clone https://github.com/cloudfoundry-samples/test-app test-app
    cd test-app
    
  2. 앱을 푸시합니다.

    kf push APP_NAME --task 명령어로 앱을 푸시합니다. --task 플래그는 앱이 태스크를 실행하기 위해 사용되기 때문에 앱에 경로가 생성되지 않으며 앱이 장기 실행 애플리케이션으로 배포되지 않는다는 점을 나타냅니다.

    kf push test-app --task
    
  3. 앱을 나열하여 앱 인스턴스 또는 경로가 생성되지 않았는지 확인합니다.

    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-jobkf 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을 호출하여 작업을 삭제합니다.