4rep - digdag 두 번째 실행이 건너 뜁니다.

9553 단어 digdag

digdag 실행하면


  • 2번째는 처리가 실행되지 않고 스킵 되고 있다.
  • 세션 정보는 .digdag 디렉토리 아래에 날짜와 함께 저장됩니다.
  • 여기에 task1, task2, task3의 실행이 성공했다는 상태가 보존되어 있기 때문에, 2번째의 실행은 스킵 된다.
  • .digdag에 저장
  • /work # ls -l .digdag/status/20200121T183000\+0900/
    total 32
    -rw-r--r--    1 root     root           183 Jan 21 09:47 +mydag+disp_current_date.yml
    -rw-r--r--    1 root     root           171 Jan 21 09:47 +mydag+setup.yml
    -rw-r--r--    1 root     root           172 Jan 21 10:30 +mydag+setup1.yml
    -rw-r--r--    1 root     root           171 Jan 21 10:32 +mydag+step1.yml
    -rw-r--r--    1 root     root           171 Jan 21 10:32 +mydag+step2.yml
    -rw-r--r--    1 root     root           171 Jan 21 10:32 +mydag+step3.yml
    -rw-r--r--    1 root     root           165 Jan 21 10:32 +mydag.yml
    -rw-r--r--    1 root     root           179 Jan 21 09:51 +mydag^failure-alert.yml
    

    이대로 여러 번 하면 건너뜁니다

    - session 옵션


  • 이 --session 의 디폴트치는 last (마지막으로 실행된 세션을 적용)가 되기 (위해)때문에, 2회째 이후의 실행은 영구적으로 스킵 되어 버린다.

  • --session에는 인수


  • hourly
  • daily
  • last
  • "yyyy-MM-dd"
  • "yyyy-MM-dd HH SS"
  • digdag run xxxxx.dig
    digdag run xxxxxxxxx.dig --session hourly
    /work # digdag run mydag.dig --session hourly
    2020-01-21 10:40:47 +0000: Digdag v0.9.41
    2020-01-21 10:40:50 +0000 [INFO] (main): Using session /work/.digdag/status/20200121T190000+0900.
    2020-01-21 10:40:50 +0000 [INFO] (main): Starting a new session project id=1 workflow name=mydag session_time=2020-01-21T19:00:00+09:00
    2020-01-21 10:40:52 +0000 [INFO] (0017@[0:default]+mydag+step1): echo>: step1
    2020-01-21 10:40:52 +0000 [INFO] (0018@[0:default]+mydag+step2): echo>: step2
    2020-01-21 10:40:52 +0000 [INFO] (0019@[0:default]+mydag+step3): echo>: step3
    step3
    step2
    step1
    Success. Task state is saved at /work/.digdag/status/20200121T190000+0900 directory.
      * Use --session <daily | hourly | "yyyy-MM-dd[ HH:mm:ss]"> to not reuse the last session time.
      * Use --rerun, --start +NAME, or --goal +NAME argument to rerun skipped tasks.
    
  • 건너 뛰지 않고 나왔다

  • 두 번째


    /work # digdag run mydag.dig --session hourly
    2020-01-21 10:40:56 +0000: Digdag v0.9.41
    2020-01-21 10:40:59 +0000 [INFO] (main): Using session /work/.digdag/status/20200121T190000+0900.
    2020-01-21 10:40:59 +0000 [INFO] (main): Starting a new session project id=1 workflow name=mydag session_time=2020-01-21T19:00:00+09:00
    2020-01-21 10:40:59 +0000 [WARN] (0019@[0:default]+mydag+step3): Skipped
    2020-01-21 10:40:59 +0000 [WARN] (0018@[0:default]+mydag+step2): Skipped
    2020-01-21 10:40:59 +0000 [WARN] (0017@[0:default]+mydag+step1): Skipped
    Success. Task state is saved at /work/.digdag/status/20200121T190000+0900 directory.
      * Use --session <daily | hourly | "yyyy-MM-dd[ HH:mm:ss]"> to not reuse the last session time.
      * Use --rerun, --start +NAME, or --goal +NAME argument to rerun skipped tasks.
    
  • 건너뛴
  • 이 세션은 스스로 날짜 지정할 수도 있다.
  • 예를 들어 monthly 세션을 만들고 싶다면 다음과 같이 한다.
  • $ digdag run workflow.dig --session "`date '+%Y-%m-01'`"
    

    매번 모두 건너 뛰지 않고 실행하는 방법


  • 매번 처음부터 실행하고 싶은 경우는 -a(--rerun)를 사용한다.
  • /work # digdag run mydag.dig -a
    2020-01-21 10:52:22 +0000: Digdag v0.9.41
    2020-01-21 10:52:24 +0000 [WARN] (main): Reusing the last session time 2020-01-21T19:00:00+09:00.
    2020-01-21 10:52:24 +0000 [INFO] (main): Using session /work/.digdag/status/20200121T190000+0900.
    2020-01-21 10:52:24 +0000 [INFO] (main): Starting a new session project id=1 workflow name=mydag session_time=2020-01-21T19:00:00+09:00
    2020-01-21 10:52:26 +0000 [INFO] (0018@[0:default]+mydag+step2): echo>: step2
    2020-01-21 10:52:26 +0000 [INFO] (0019@[0:default]+mydag+step3): echo>: step3
    2020-01-21 10:52:26 +0000 [INFO] (0017@[0:default]+mydag+step1): echo>: step1
    step2
    step3
    step1
    Success. Task state is saved at /work/.digdag/status/20200121T190000+0900 directory.
      * Use --session <daily | hourly | "yyyy-MM-dd[ HH:mm:ss]"> to not reuse the last session time.
      * Use --rerun, --start +NAME, or --goal +NAME argument to rerun skipped tasks.
    
  • digdag run mydag.dig --rerun
  • digdag run mydag.dig -a
    어딘가

  • -s 옵션


  • task를 도중에서 실행할 때에는 -s를 사용한다.
  • digdag run mydag.dig -s '+{digdag-file-name} + {도중 실행하고 싶은 단계} '
  • /work # digdag run mydag.dig -s '+mydag+step4'
    2020-01-21 11:19:05 +0000: Digdag v0.9.41
    2020-01-21 11:19:08 +0000 [WARN] (main): Reusing the last session time 2020-01-21T19:00:00+09:00.
    2020-01-21 11:19:08 +0000 [INFO] (main): Using session /work/.digdag/status/20200121T190000+0900.
    2020-01-21 11:19:08 +0000 [INFO] (main): Starting a new session project id=1 workflow name=mydag session_time=2020-01-21T19:00:00+09:00
    2020-01-21 11:19:08 +0000 [WARN] (0017@[0:default]+mydag+setup1): Skipped
    2020-01-21 11:19:08 +0000 [WARN] (0017@[0:default]+mydag+step2): Skipped
    2020-01-21 11:19:08 +0000 [WARN] (0017@[0:default]+mydag+step3): Skipped
    2020-01-21 11:19:10 +0000 [INFO] (0017@[0:default]+mydag+step4): sh>: ./repeat_hello.sh
     from process 2036
     from process 2036
     from process 2036
     from process 2036
    Success. Task state is saved at /work/.digdag/status/20200121T190000+0900 directory.
      * Use --session <daily | hourly | "yyyy-MM-dd[ HH:mm:ss]"> to not reuse the last session time.
      * Use --rerun, --start +NAME, or --goal +NAME argument to rerun skipped tasks.
    

    좋은 웹페이지 즐겨찾기