ͯͳϒϩάνʔϜͰͷಇ͖ํ)BUFOB&OHJOFFS4FNJOBSJE:BB.BB
View Slide
ࣗݾհJE:BB.BB৽ଔͯͳϒϩάνʔϜओʹݸਓϢʔβʔ͚ͷ։ൃΛ͍ͯ͠·͢
ࣄͰ͏ͷ1FSMϒϩάຊମͷαʔόʔαΠυ(PϒϩάपลαʔϏεʢͯͳϒϩάλάͳͲʣͷαʔόʔαΠυ+BWB4DSJQU 5ZQF4DSJQUओʹϑϩϯτΤϯυ
͢͜ͱೖࣾͯͬͨ͠தͰҰ൪େมͩͬͨλεΫʹ͍ͭͯɾͲ͏ͬͯਐΊ͍͔ͯͬͨɾͲ͏͍͏͕͔͋ͬͨ͠͞ɾࣦഊͨ͜͠ͱͳͲ
λεΫͷ༰ϒϩάهࣄʹషΓ͚ΒΕͨը૾ͷதͰɺ(PPHMFϑΥτ͔ΒషΓ͚ΒΕͨը૾͕ӾཡͰ͖ͳ͘ͳͬͯ͠·ͬͨͷͰɺͦΕΒΛͯͳϑΥτϥΠϑʹҠߦ͢Δ(PPHMFϑΥτ(PPHMFͷը૾ϗεςΟϯάαʔϏεͯͳϑΥτϥΠϑͯͳ͕։ൃ͍ͯ͠Δը૾ϗεςΟϯάαʔϏε
λεΫͷ༰ཱྀߦʹߦͬͨͱ͖ͷࣸਅͰ͢ɻϑΥτϥΠϑ63-ͷϑΝΠϧ໊Λखֻ͔Γʹը૾Λ୳͢ϑΥτϥΠϑͷ63-ʹॻ͖͑(PPHMFϑΥτऔಘͨ͠ը૾σʔλΛΞοϓϩʔυ
ܭը
ܭը Ҡߦͷඞཁ͕͋Δը૾63-Λચ͍ग़͢ ը૾σʔλΛ63-͔ΒऔಘͰ͖ΔͷͱͰ͖ͳ͍ͷʹબผऔಘͰ͖Δ Ͱ͖ͳ͍Ϣʔβʔʹ(PPHMFೝূͯ͠Βͬͯɺ(PPHMFϑΥτͷ"1*Λͬͯը૾Λ୳ͯ͠औಘ
ܭըऔಘͨ͠ը૾σʔλΛϢʔβʔͷϑΥτϥΠϑʹΞοϓϩʔυهࣄͷը૾63-ΛϑΥτϥΠϑͰͷ63-ʹஔ͖͍͑ͯ͘
ܭըը૾ͷใΛೖΕΔ%#ςʔϒϧ܈ͷઃܭid original_url ⋯ statusxxxxxx https://… ⋯ initialid image_id entry_id existsxxxxxx xxxxxx xxxxxx TRUEid image_id s3_urlxxxxxx xxxxxx https://…ը૾هࣄͱը૾ͷϚοϐϯά(PPHMFϑΥτͷ"1*͔Βऔಘͨ͠ը૾
ܭըܭըΛཱͯͨΒҰ୴ϨϏϡʔͯ͠Β͏ɾσΟϨΫλʔϢʔβʔʹͲΕ͘Β͍ͷखؒΛ͔͚ͤͯ͞͠·͏͔ͳͲ૬ஊɾϝϯλʔΤϯδχΞٕज़తͳ෦ͷيಓमਖ਼ے͕ѱ͍͜ͱɾඇޮͳ͜ͱΛ͠Α͏ͱ͍ͯ͠ͳ͍͔
ଞ৬छͱͷ࿈ܞϢʔβʔೝূͷҊը໘σβΠφʔͱ૬ஊ͠ͳ͕ΒڞಉͰը໘Λ࡞͍ͬͯ͘ɻͲ͜ʹ௨Λஔ͔͘ͱ͔͠߹͏ɻࠂɾϔϧϓϖʔδ༷ૢ࡞ํ๏Λ·ͱΊ͔ͯΒɺฤूͷํʹݪߘΛ͓ئ͍͢Δɻ٬؍తͳࢹͰΘ͔ΓͮΒ͍ͱ͜ΖΛิͯ͠Β͏ɻ
՝ͱରॲ
ϑϩʔ͕ෳࡶॳظঢ়ଶ63-͔Βը૾औಘޭ63-͔Βը૾औಘࣦഊϢʔβʔͷ(PPHMFೝূ"1*Ͱը૾Λ୳͠தը૾Λ୳͢ͷʹࣦഊީิ͕ू·ͬͨީิ͔ΒߜΓࠐΊͳ͍ީิ͔ΒҰͭʹಛఆͰ͖ͨϑΥτϥΠϑʹΞοϓϩʔυதΞοϓϩʔυࣦഊΞοϓϩʔυྃهࣄͷॻ͖͑ྃهࣄͷॻ͖ࣦ͑ഊঢ়ଶΛચ͍ग़͢ͷ͕େม
ϑϩʔ͕ෳࡶͦΕͰߟྀෆͩͬͨɾҠߦ͍ͯ͠Δ్தʹϢʔβʔ͕ୀձͯ͠͠·ͬͨΒʁɾҠߦ͍ͯ͠Δ్தʹϢʔβʔ͕ࣗͰҠߦରͷը૾Λॻ͖͑ͨΒʁɾϢʔβʔ͕ೝূ͢Δ(PPHMFΞΧϯτΛؒҧ͍͑ͯͯɺผͷΞΧϯτͰೝূ͔ͨͬͨ͠͠Βʁ
ϑϩʔͷߟྀෆͷରԠϢʔβʔͷ(PPHMFೝূ"1*Ͱը૾Λ୳͠தը૾Λ୳͢ͷʹࣦഊީิ͕ू·ͬͨީิ͔ΒߜΓࠐΊͳ͍ෳճϢʔβʔೝূͰ͖ΔΑ͏ʹީิ͔ΒҰͭʹಛఆͰ͖ͨϑϩʔΛՃهࣄฤूͷλΠϛϯάͰɺ(PPHMFϑΥτ͔ΒషΓ͚ΒΕͨը૾͕͍ͬͯΔ͔ΛνΣοΫ͢ΔॲཧΛՃ
ίʔυϨϏϡʔͯ͠Β͏ͷ͕େมͳΔ͘ϨϏϡʔ͍͢͠Α͏ʹ13Λখ͚ʹ͢Δ͚Ͳɺͦ͏͢Δͱݸʑͷ13ͷతҐஔ͚͕Θ͔ΓͮΒ͍ࡉΕͷ13ͷ༷ࢠ
ίʔυϨϏϡʔͯ͠Β͏ͷ͕େมϨϏϡϫʔϥϯυϩϏϯͰܾ·ΔͷͰɺ13ͷܦҢจ຺Βͳ͍
ίʔυϨϏϡʔͯ͠Β͏ͷ͕େมɾը૾Ͳ͏͍͏ঢ়ଶΛͱΓ͏Δͷ͔ɾ͜ͷ13ͰͲͷঢ়ଶͷը૾ΛͲͷঢ়ଶʹ͍͖͍࣋ͬͯͨͷ͔ɾͦΕશମͷఔͷͲͷ͋ͨΓʹҐஔ͢Δͷ͔Λຖճઆ໌
ྔ͕ଟ͍ը૾ͷ͕ͻͨ͢Βଟͯ͘ɺશͯͷॲཧʹ͕͔͔࣌ؒΔ
ྔ͕ଟ͍ϒϩάຊମͷδϣϒΩϡʔϫʔΧʔͷෛ୲Λߟ͑ͣʹɺಠཱͯ͠Ұؾʹ࣮ߦͰ͖Δॳظঢ়ଶ63-͔Βը૾औಘޭ63-͔Βը૾औಘࣦഊϢʔβʔͷ(PPHMFೝূ"1*Ͱը૾Λ୳͠தը૾Λ୳͢ͷʹࣦഊީิ͕ू·ͬͨީิ͔ΒߜΓࠐΊͳ͍ީิ͔ΒҰͭʹಛఆͰ͖ͨϑΥτϥΠϑʹΞοϓϩʔυதΞοϓϩʔυࣦഊΞοϓϩʔυྃهࣄͷॻ͖͑ྃهࣄͷॻ͖ࣦ͑ഊϢʔβʔೝূҎલͷॲཧҰؾʹͬͯ͠·͑Δ&$4ͰཱͯͨίϯςφΛͬͯߦͬͨ
ྔ͕ଟ͍(PPHMFϑΥτͷ"1*Λݺͼग़͢ճ͕ଟ͘ͳΔը૾σʔλΛ୳ͨ͢Ίͷ"1*ίʔϧϢʔβʔͷʹൺྫͯ͠ଟ͘ͳΔͷͰɺͷ੍ݶճʹ͙ͨͬͯ͢͠·͏ɻॳظঢ়ଶ63-͔Βը૾औಘޭ63-͔Βը૾औಘࣦഊϢʔβʔͷ(PPHMFೝূ"1*Ͱը૾Λ୳͠தը૾Λ୳͢ͷʹࣦഊީิ͕ू·ͬͨީิ͔ΒߜΓࠐΊͳ͍ީิ͔ΒҰͭʹಛఆͰ͖ͨϑΥτϥΠϑʹΞοϓϩʔυதΞοϓϩʔυࣦഊΞοϓϩʔυྃهࣄͷॻ͖͑ྃهࣄͷॻ͖ࣦ͑ഊ͜͜
ྔ͕ଟ͍ɾ"1*ݺͼग़͠ճ੍ݶͷ؇Λਃɾຖ্ݶʹͨΔ·Ͱݺͼग़ͯ͠ɺ্ݶʹͨͬͨΒΓ࣍ͷҎ߱ʹճ͢
ਐḿ֬ೝ์ஔ͍ͯͨ͠Βগͣͭ͠ॲཧ͕ਐΜͰ͍͘λΠϓͷλεΫͳͷͰɺਐḿ֬ೝ͕େมSELECT COUNT(*) FROM image WHERE status = ‘…’;͋ΔظؒͰͷਪҠΛάϥϑͰݟ͍ͨ.BDLFSFMͷग़൪ͦΕͧΕͷঢ়ଶͷը૾͕ͲΕ͘Β͍͋Δͷ͔֬ೝ͍͚ͨ͠Ͳɺຖճ͜Μͳ͜ͱˣͨ͘͠ͳ͍
ͯͳͷαʔόʔࢹαʔϏεه͍ͨ͠ΛαʔϏεϝτϦοΫͱͯ͠ఆظతʹ.BDLFSFMʹϙετ͢ΔࠓճͳΒɺͦΕͧΕͷঢ়ଶͷը૾ͷຕউखʹάϥϑԽͯ͘͠ΕΔਐḿ֬ೝ
.BDLFSFMͰμογϡϘʔυΛ࡞ͬͯຬ͍͚ͯͨ͠ΕͲʜผͷλεΫΛ͍ͬͯͨΒͪ͜Βͷॲཧ͕ࢭ·ͬͯ͠·͍ͬͯͨࢭ·͍ͬͯΔͷʹؾ͚ͮΔΈ͕ඞཁਐḿ֬ೝ
.BDLFSFMͷʮࣜʹΑΔࢹʯ͕͑ΔUJNF4IJGU EJ⒎ ͳͲͷؔΛͬͯҰఆظؒͰͲΕ͘Β͍ਐΜ͔ͩΛԽͦΕ͕ҰఆҎԼʹͳͬͨΒΞϥʔτΛग़͢ਐḿ֬ೝdiff(timeShift(○○,7d),○○)ࣜࢹͷྫ
ࣦഊͨ͜͠ͱ
ࣦഊͨ͜͠ͱݟੵΓ(PPHMFϑΥτͷ"1*ʹ͝ͱʹճ੍ݶ͕͋ΔͦΕΛ͘ݟ͍ͯͨͷͰݟੵΓݟҧ͍ʹͳͬͯ͠·ͬͨ
ࣦഊͨ͜͠ͱδϣϒೖ͗͢͠δϣϒΩϡʔDSPOδϣϒϒϩάͷΞϓϦέʔγϣϯϫʔΧʔϫʔΧʔϫʔΧʔ͍Ζ͍Ζͳछྨͷδϣϒ͕ू·Δ͜͜
ࣦഊͨ͜͠ͱδϣϒೖ͗͢͠δϣϒΩϡʔ͕ͲΕ͘Β͍Ͱࡹ͚Δ͔͋·ΓΘ͔ͬͯͳͯ͘δϣϒΛೖΕ͗͢ΔϒϩάͷଞͷδϣϒʹӨڹɾ༧ߘɾهࣄߘޙͷॲཧɹɹͳͲ
ࣦഊͨ͜͠ͱuse constant {JOB_COUNT = 20};σϓϩΠ͠ͳ͍ͱมߋͰ͖ͳ͍ ཧը໘ͱ͔ͰαοͱมߋͰ͖ΔΑ͏ʹ͢ΔճʹೖΕΔδϣϒͷ ద༻ࡹ͚۩߹ʹΑͬͯௐͰ͖Δ
ֶΜͩ͜ͱ
ෳࡶͳλεΫ͔ͩΒͦ͜આ໌ஸೡʹϨϏϡϫʔʹ13ͷతҐஔ͚͕ͮͪΌΜͱΘΔͱɺߟྀ࿙ΕͷࢦఠɺΑΓΑ͍ํ๏ͷఏҊΛͯ͠Β͑Δ͜ͱ͕͋Δ
ͯͳϒϩάͰѻ͏σʔλͷେ͖͞Λ࣮ײԿΛ͢Δʹ͕͔͔ͯ࣌ؒ͠ΔͷͰɺಠཱͯ͠ฒߦॲཧͰ͖Δ෦͢Δͷ͕େࣄ
طଘͷهࣄΛकΔ͜ͱ͕େϢʔβʔͷࢿ࢈Ͱ͋ΔهࣄΛյ͞ͳ͍Α͏ʹ͢Δͷ͕࠷༏ઌ
Ҏ্Ͱ͢