Digdagを仕事で使ってみて良かったこと、ハマったこと / Using Digdag in production environment

Digdagを仕事で使ってみて良かったこと、ハマったこと / Using Digdag in production environment

D0f23208dff6d54a2a4305e65af569c8?s=128

Takehiro Shiozaki

June 07, 2017
Tweet

Transcript

  1. 6.

    DSPOͰ؅ཧ͍ͯͨ͠ࠒ 0 0 * * * crawl-1
 0 0 *

    * * crawl-2 0 0 * * * crawl-N # crawl処理は30分以内に終わるはず 0 30 * * * merge
 # merge処理は10分以内に終わるはず 0 40 * * * upload
  2. 7.

    DSPOͰ؅ཧ͍ͯͨ͠ࠒ 0 0 * * * crawl-1
 0 0 *

    * * crawl-2 0 0 * * * crawl-N # crawl処理は30分以内に終わるはず 0 30 * * * merge
 # merge処理は10分以内に終わるはず 0 40 * * * upload ΋͠ɺ෼Ҏ಺ʹऴΘΒͳ͔ͬͨΒʁ
  3. 8.

    DSPOͰ؅ཧ͍ͯͨ͠ࠒ 0 0 * * * crawl-1
 0 0 *

    * * crawl-2 0 0 * * * crawl-N # crawl処理は30分以内に終わるはず 0 30 * * * merge
 # merge処理は10分以内に終わるはず 0 40 * * * upload ͜ͷॲཧ͕ࣦഊͨ͠Βɺ ͜ΕҎ߱ͷॲཧ͸ετοϓ͢Δ΂͖ʁ
  4. 9.

    DSPOͰ؅ཧ͍ͯͨ͠ࠒ 0 0 * * * crawl-1
 0 0 *

    * * crawl-2 0 0 * * * crawl-N # crawl処理は30分以内に終わるはず 0 30 * * * merge
 # merge処理は10分以内に終わるはず 0 40 * * * upload ॲཧ͕ࣦഊͨ࣌͠ʹ͸ϦτϥΠ͍ͨ͠
  5. 10.

    DSPOͰ؅ཧ͍ͯͨ͠ࠒ 0 0 * * * crawl-1
 0 0 *

    * * crawl-2 0 0 * * * crawl-N # crawl処理は30分以内に終わるはず 0 30 * * * merge
 # merge処理は10分以内に終わるはず 0 40 * * * upload ্ྲྀͷॲཧ͕ϦτϥΠͨ࣌͠ʹ͸ɺ ॲཧͷ։࢝࣌ࠁΛ஗Β͍ͤͨ
  6. 11.

    DSPOͰ؅ཧ͍ͯͨ͠ࠒ 0 0 * * * crawl-1
 0 0 *

    * * crawl-2 0 0 * * * crawl-N # crawl処理は30分以内に終わるはず 0 30 * * * merge
 # merge処理は10分以内に終わるはず 0 40 * * * upload Τϥʔ͕ى͖ͨΒ௨஌͕ཉ͍͠
  7. 12.
  8. 15.

    w "JSqPX΍-VJHJͱൺ΂Δͱࣗ༝౓͕௿͍
 ˢͦ΋ͦ΋ߴ͍ࣗ༝౓͸ෆཁ Α͔ͬͨ͜ͱઃఆϑΝΠϧ͕γϯϓϧ timezone: UTC +setup: echo>: start ${session_time}

    +disp_current_date: echo>: ${moment(session_time).utc().format('YYYY-MM-DD HH:mm:ss Z')} +repeat: for_each>: order: [first, second, third] animal: [dog, cat] _do: echo>: ${order} ${animal} _parallel: true +teardown: echo>: finish ${session_time}
  9. 19.

    w ղܾࡦ w 4ʹҰ࣌ϑΝΠϧΛஔ͍ͯड͚౉͠Λ͢Δ ϋϚͬͨ͜ͱҰ࣌ϑΝΠϧͷड͚౉͠ _export: docker: image: python:3.6.1 +crawl:

    _parallel: true +crawl1: sh>: crawl.sh > temp_result_1.json +crawl2: sh>: crawl.sh > temp_result_2.json +merge: sh>: merge.sh temp_result1.json temp_result2.json &3303 ϑΝΠϧ͕ݟ͔ͭΒͳ͍
  10. 21.

    w %JHEBHศར w DSPOӡ༻ͷʮͭΒ͞ʯΛղফͯ͘͠ΕΔϞάϥ w ·ͩࢼͨ͜͠ͱ͕ͳ͍ਓ͸ɺҎԼͷίϚϯυΛ࣮ߦͯ͠Πϯετʔϧ • $ curl -o

    ~/bin/digdag --create-dirs \
 -L "https://dl.digdag.io/digdag-latest"
 $ chmod +x ~/bin/digdag
 $ echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc ·ͱΊ