Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

Takehiro Shiozaki

June 07, 2017
Tweet

More Decks by Takehiro Shiozaki

Other Decks in Technology

Transcript

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

    * * crawl-2 0 0 * * * crawl-N # crawl処理は30分以内に終わるはず 0 30 * * * merge
 # merge処理は10分以内に終わるはず 0 40 * * * upload
  2. DSPOͰ؅ཧ͍ͯͨ͠ࠒ 0 0 * * * crawl-1
 0 0 *

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

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

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

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

    * * crawl-2 0 0 * * * crawl-N # crawl処理は30分以内に終わるはず 0 30 * * * merge
 # merge処理は10分以内に終わるはず 0 40 * * * upload Τϥʔ͕ى͖ͨΒ௨஌͕ཉ͍͠
  7. 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}
  8. 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 ϑΝΠϧ͕ݟ͔ͭΒͳ͍
  9. 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 ·ͱΊ