4rep - digdag 2回目実行がスキップされる 

# digdag 実行すると
- 2度目は処理が実行されずスキップされている。
- セッションの情報は.digdagディレクトリ下に日付がついて保存されている。
- ここにtask1,task2,task3の実行が成功したという状態が保存されているため、2度目の実行はスキップされる。
- .digdagに保存される

``` shell
/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:mm:SS"


``` shell
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.
```
- スキップされずにでた

## 2回目
``` shell
/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なセッションを作りたい場合は以下のようにする。

``` shell
$ digdag run workflow.dig --session "`date '+%Y-%m-01'`"
```

## 毎回全てスキップされずに実行する方法
- 毎回最初から実行したい場合は-a(--rerun)を使う。

``` shell
/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}+{途中実行させたいステップ}'

``` shell
/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.
```