Slide 1

Slide 1 text

ʙ+409ฤʙ ∁ੴྒ(.01FQBCP *OD 3VCZΤϯδχΞ͕ޠΔɺ೥ͷৼΓฦΓͱ͜Ε͔Β αʔϏεج൫ʹ͓͚Δ3VCZ

Slide 2

Slide 2 text

ιϑτ΢ΣΞΤϯδχΞ ∁ੴྒ!S@UBLBJTIJ (.01FQBCP *ODNJOOFج൫νʔϜ

Slide 3

Slide 3 text

ΩʔϘʔυপ w ڈ೥ɿࣗ୐ΩʔϘʔυϦϓϨʔε͍ͨ͠ʜ w ڈ೥݄ɿ&SHP%PY&; w ڈ೥݄ɿ)BQQZ)BDLJOH,FZCPBSE1SP+1 w ڈ೥݄ɿ,JOFTJT'SFF4UZMF w ࠓ೥݄ɿ)BQQZ)BDLJOH,FZCPBSE1SPࠓ͜͜ w ࠓޙɿࣗ࡞͔ʜʂʁ

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

ࠓ೔ͷ࿩

Slide 6

Slide 6 text

ఆظδϣϒͷϩάΛ 4MBDLʹఴ෇͢Δ

Slide 7

Slide 7 text

ͳͥ΍ͬͨͷ͔

Slide 8

Slide 8 text

ͳͥ΍ͬͨͷ͔ w +409ͷ؂ࠪͰඞཁʹͳͬͨ w +409 w ࣾ಺ΛͪΌΜͱίϯτϩʔϧ͠·͠ΐ͏ɺͱ͍͏͜ͱ ࡶ w ͨͱ͑͹ʜ w ݖݶΛ࣋ͭϢʔβͷΈγεςϜʹΞΫηεͰ͖Δ͔ʁ w γεςϜมߋͷཤྺ͕؅ཧ͞Ε͍ͯΔ͔ʁ

Slide 9

Slide 9 text

ͱ͸͍͑ w ؂ࠪʹؔ܎ͳ͘΍͓ͬͯ͘ͱศར w αʔϏε্Ͱಈ͘ఆظδϣϒͷ࣋ͭ՝୊ ͪΌΜͱఆظతʹಈ͍͍ͯΔͷ͔ͳʁ ϩά͸Ͳ͜ʹ͋ΔΜͩΖ͏ʁ ͦͷϩά͸ɺͲͷδϣϒͷ΋ͷͩΖ͏ʁ

Slide 10

Slide 10 text

ղܾࡦɿՄࢹԽ ͪΌΜͱఆظతʹಈ͍͍ͯΔͷ͔ͳʁ w ಈ͍͍ͯΔͷ͕ݟ͑Δ͜ͱ ϩά͸Ͳ͜ʹ͋ΔΜͩΖ͏ʁ w ࣦഊͨ࣌͠ɺ͙͢ʹΘ͔Δ͜ͱ ͦͷϩά͸ɺͲͷδϣϒͷ΋ͷͩΖ͏ʁ w ϩάͱδϣϒ͕ؔ࿈͚ͮΒΕ͍ͯΔ͜ͱ

Slide 11

Slide 11 text

+409ؔ܎ͳ͘ศར

Slide 12

Slide 12 text

Ͳ͏ՄࢹԽ͢Δ͔

Slide 13

Slide 13 text

Ͳ͔͜Λݟʹ͍͘ͷ͸ ݁ߏΊΜͲ͏ʜ

Slide 14

Slide 14 text

ීஈ͔Β͍Δ৔ॴ͕͍͍

Slide 15

Slide 15 text

ීஈ͔Β͍Δ৔ॴʜ

Slide 16

Slide 16 text

ͩʂ

Slide 17

Slide 17 text

4MBDLʹ࢒ͦ͏

Slide 18

Slide 18 text

λεΫ͕ࣦഊͨ࣌͠΋0,

Slide 19

Slide 19 text

Ͳ͏΍Δ͔

Slide 20

Slide 20 text

Ͳ͏΍Δ͔ Batch Tempfile ǎǽǬῘ൓Ƶ๙ᆩ ㊗ǎǽǬປਔƵ๙ᆩ ၂ℭǫƷƺȁƎℼŰ䴘Ƣ ǎǽǬƑȃdžƵเڱ ǎǽǬƵ⻎ྛ

Slide 21

Slide 21 text

Ͳ͏΍Δ͔

Slide 22

Slide 22 text

Ͳ͏΍Δ͔ ࣮ߦલޙʹ4MBDLʹ௨஌ ࣮૷ࡁΈ䠼ʢNJ[P3SBLF@OPUJpDBUJPOʣ ࣮ߦޙʹ4MBDLʹϩάΛఴ෇ ະ࣮૷䠼 ͜ΕΛ࣮ݱ͢Ε͹ཁ݅Λຬͨ͢ʂ

Slide 23

Slide 23 text

λεΫͷϩάΛ 4MBDLʹఴ෇͢Δ

Slide 24

Slide 24 text

λεΫͷϩάΛ4MBDLʹఴ෇͢Δ λεΫͷϩάɾඪ४ग़ྗΛऔಘ औಘͨ͠ϩάΛ4MBDLʹఴ෇

Slide 25

Slide 25 text

λεΫͷϩάɾඪ४ग़ྗ Λऔಘ͢Δ

Slide 26

Slide 26 text

λεΫͷϩάɾඪ४ग़ྗΛऔಘ͢Δ w ϩάɾඪ४ग़ྗͷ޲͖ઌΛҰ࣌ϑΝΠϧʹ͢Δ w ϩάɿ"DUJWF4VQQPSU-PHHFSCSPBEDBTU w ඪ४ग़ྗɿ.VMUJ*0

Slide 27

Slide 27 text

"DUJWF4VQQPSU-PHHFSCSPBEDBTU

Slide 28

Slide 28 text

"DUJWF4VQQPSU-PHHFSCSPBEDBTU w ϩάΛෳ਺ͷ-PHHFSʹૹΔͨΊͷϝιου w ྫʣඪ४ग़ྗϑΝΠϧ w ྫʣϑΝΠϧϑΝΠϧ new_logger = ActiveSupport::Logger.new(logdev) multiple_loggers = ActiveSupport::Logger.broadcast(new_logger) @logger.extend(multiple_loggers)

Slide 29

Slide 29 text

.VMUJ*0

Slide 30

Slide 30 text

.VMUJ*0 w ෳ਺ͷ*0ʹର͠ॲཧΛߦ͏ͨΊͷΫϥε w TUEPVUDMBTT*0 w ྫʣ45%065ϑΝΠϧ class MultiIO # @param [Array] io_list def initialize(io_list) @io_list = io_list end [snip] def write(str) @io_list.each do |io| io.write(str) io.flush end end [snip] end

Slide 31

Slide 31 text

ϩάΛ4MBDLʹఴ෇͢Δ

Slide 32

Slide 32 text

ϩάΛ4MBDLʹఴ෇͢Δ w "1*Λ࢖ͬͯ4MBDLʹϑΝΠϧΛఴ෇Ͱ͖Δ pMFTVQMPBE w XSBQQFSMJCSBSZΛ࢖༻ MJOZPXTCSFBDBO def send_log_slack(task, tmplog) Breacan.access_token = '#{SLACK_ACCESS_TOKEN}' arg = { channels: ENV['RAKE_NOTIFY_TO'] || '#minne_dev', file: Faraday::UploadIO.new(tmplog.path, 'text/plain'), filename: "#{File.basename(task.name)}_#{Time.now.strftime('%Y%m%d%H%M%S')}.log" } Breacan.files_upload(arg) end

Slide 33

Slide 33 text

pMFTVQMPBEͷ᠘ w ௨ৗͷ౤ߘ༻"1*ͩͱΞΠίϯ΍໊લΛมߋͰ͖Δ w pMFTVQMPBE͸ෆՄ w ʮͱΓ͋͑ͣࣗ෼ͷτʔΫϯΛ͠͹Β͘࢖͏ʯͱ͔΍Δͱʜ

Slide 34

Slide 34 text

pMFTVQMPBEͷ᠘ w ௨ৗͷ౤ߘ༻"1*ͩͱΞΠίϯ΍໊લΛมߋͰ͖Δ w pMFTVQMPBE͸ෆՄ w ʮͱΓ͋͑ͣࣗ෼ͷτʔΫϯΛ͠͹Β͘࢖͏ʯͱ͔΍Δͱʜ

Slide 35

Slide 35 text

͓ΘΓʹ

Slide 36

Slide 36 text

͓ΘΓʹ w 3BLFλεΫͷ࣮ߦલޙͰ4MBDLʹ௨஌ʢ࣮૷ࡁΈʣ w 3BLFλεΫ࣮ߦޙɺϩάΛ4MBDLʹఴ෇ʢ࣮૷ࡁΈʣ

Slide 37

Slide 37 text

Ͳ͏΍Δ͔

Slide 38

Slide 38 text

͓ΘΓʹ wϩά͕4MBDLʹ͋Δ wˠδϣϒ͕ࣦഊ͙ͨ࣌͢͠ݟΒΕΔʂศརʂ wج൫νʔϜͰ΋ɺ3VCZͰαʔϏεΛΑ͍ͯͧ͘͘͠

Slide 39

Slide 39 text

܅΋ϖύϘͰಇ͔ͳ͍͔ʁ ࠷৽ͷ࠾༻৘ใΛνΣοΫˠ !QC@SFDSVJU