çŸä»£ã®ãœãããŠã§ã¢ã·ã¹ãã ã¯ãããŒã¿åŠçããããæŽæ°ãã¡ãŒã«éä¿¡ããã¥ãŒããŒã¹ã®ã¯ãŒã¯ãããŒãšãã£ãéåæã¿ã¹ã¯ã®åŠçã«ãããã¯ã°ã©ãŠã³ããžã§ãã«å€§ããäŸåããŠããŸãããããã®ãžã§ãã¯ãã¡ã€ã³ã®ãªã¯ãšã¹ãïŒã¬ã¹ãã³ã¹ãµã€ã¯ã«ã®å€ã§å®è¡ãããããšãå€ããç£èŠããããã°ãæ€èšŒãå°é£ã§ãããžã§ãããžãã¯ãé²åããäŸåé¢ä¿ãå¢å€§ããã«ã€ããŠãå®è¡ãããŒã«é¢ããæ³å®ãçŸå®ããä¹é¢ãããµã€ã¬ã³ããšã©ãŒãã¹ãããã®çç¥ããããã¯ããŒã¿æå€±ãéçšäžã®ã€ã³ã·ãã³ããåŒãèµ·ãããŸã§é¡åšåããªãæå³ããªãåäœã«ã€ãªããå¯èœæ§ããããŸãã
ããã¯ã°ã©ãŠã³ããžã§ãã®å®è¡ãã¹ã¯ãå¶åŸ¡æ§é ãå€éšæ¡ä»¶ãå詊è¡ããžãã¯ããããŠäžæµã·ã¹ãã ã«ãã£ãŠåœ¢æãããŸããåæé¢æ°ãšã¯ç°ãªããæ¡ä»¶åå²ãã¹ã±ãžã¥ãŒã«ãããããªã¬ãŒããããŠãã€ã¯ããµãŒãã¹éã®è€éãªãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãå«ãŸããããšããããããŸãããã®çµæãã·ã¹ãã ã®ä¿¡é Œæ§ã«ãããç²ç¹ãæ¡å€§ããååã«ãã¹ããããã³ãŒãã§ãã£ãŠããåæå®è¡æ§ãç¶æ ããããã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ã®ã¿ã€ãã³ã°ã«ãã£ãŠãæ¬çªç°å¢ã§ã¯äºæž¬äžå¯èœãªåäœãããå¯èœæ§ããããŸãã
èŠèŠé害è åãã®ä»äºã¯ãããªã
SMART TS XL ã³ãŒããèŠèŠçãªå®è¡å³ã«å€æããéžè±ããµã€ã¬ã³ãéå®³ãæ€åºããŸãã
詳现å詊è¡ã®å€±æããããŒã®äžå®å šå®äºãå€ç«ããã¬ã³ãŒããéã¹ãçæ§åäœã¯ãã¹ãŠããžã§ããã¹ã®æ€èšŒäžè¶³ãŸãã¯èª€è§£ã«èµ·å ãããã®ã§ãããããã®åé¡ã¯ãç¹ã«è€æ°ã®ãã¥ãŒããµãŒãã¹ããŸãã¯ã¯ãŒã«ãŒã¿ã€ããååšãã忣ç°å¢ã§ã¯ããã°ã ãã§ã¯æ€åºãå°é£ã§ããè² è·äžã§ãžã§ããå®éã«ã©ã®ããã«å®è¡ãããããå®å šã«å¯èŠåã§ããªããšãéçºããŒã ã¯ååž°ãSLAéåããããŠé ããããŒã¿ç Žæã®ãªã¹ã¯ãé«ãŸããŸãã
仿¥ã®ãœãããŠã§ã¢ã·ã¹ãã ã«ãããŠãããã¯ã°ã©ãŠã³ããžã§ããæ³å®éãã®å®è¡ãã¹ããã©ã£ãŠããããšãæ€èšŒããããšã¯ã決ããŠèŽ æ²¢ãªããšã§ã¯ãããŸãããããã¯ãå€§èŠæš¡ãªç°å¢ã«ãããäžè²«æ§ãå¯èŠ³æž¬æ§ããããŠéçšäžã®ä¿¡é Œæ§ã確ä¿ããããã®åææ¡ä»¶ã§ãããã®ããã«ã¯ãäºåŸå¯Ÿå¿åã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ãžã®äŸåããããžã§ãã©ã€ããµã€ã¯ã«å šäœã«ãããããã¢ã¯ãã£ããªã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ããããŒæ€èšŒããããŠãã¬ãŒã¹å¯èŠåãžã®è»¢æãå¿ èŠã§ãã
ããã¯ã°ã©ãŠã³ããžã§ãã®è€éããçè§£ãã
ããã¯ã°ã©ãŠã³ããžã§ãã¯ãçŸä»£ã®ã¢ããªã±ãŒã·ã§ã³ã«ãããç®ã«èŠããªãåŽååã§ããã¬ããŒãçæãããŒã¿ãšã³ãªããã¡ã³ãããã£ãã·ã¥ã®ç¡å¹åããµãŒãããŒãã£APIãšã®ããåããå éšã¡ãã»ãŒãžã³ã°ãšãã£ãéèŠãªåŠçãããŠãŒã¶ãŒã«çŽæ¥ã¢ã¯ã»ã¹ãããªã¯ãšã¹ããµã€ã¯ã«ã®å€åŽã§åŠçããŸãããã®éèŠãªåœ¹å²ã«ãããããããåæã³ãŒããã¹ã»ã©ã®å¯èŠæ§ããã¬ãŒãµããªãã£ãå³å¯ãªãã¹ãã確ä¿ãããŠããªãããšããããããŸãã
è£ä»äºã®è¿œè·¡ãå°é£ã«ããèŠå
ããã¯ã°ã©ãŠã³ããžã§ãã¯ãæ¬è³ªçã«ããžã§ããéå§ããããªã¬ãŒããåé¢ãããŠããŸãããŠãŒã¶ãŒã¢ã¯ã·ã§ã³ã«ãã£ãŠã¡ãã»ãŒãžããã¥ãŒã«ç»é²ããããšããŠãããžã§ããå®è¡ãããé ã«ã¯ããã®ã³ã³ããã¹ãã倱ãããããããŒã¿ã倿Žãããããã¢ããªã±ãŒã·ã§ã³ãåèµ·åãããããŠããå¯èœæ§ããããŸãããã®åé¢ã«ãããå®è¡ã®è¿œè·¡ãè€éåããŸãã
ã»ãšãã©ã®ãžã§ãã·ã¹ãã ã¯ãã¯ãŒã«ãŒããŒã«ããã¥ãŒããŸãã¯ã¹ã±ãžã¥ãŒã©ã«äŸåããŠããŸãããžã§ãããã¥ãŒã«å ¥ããšãããã«ååŸãããããé å»¶ãããããå詊è¡ããããããããã¯ãµã€ã¬ã³ãã«ç Žæ£ããããã®ããããã«ãªããŸãããã°ã«ã¯ãžã§ããéå§ãããããšãèšé²ãããå ŽåããããŸãããæå³ããããžãã¯ãã¹ã«åŸã£ãã®ããéäžã§çµäºããã®ããäžå¿ èŠã«å詊è¡ãããã®ãããããã¯ããŒã¿ã誀ã£ãŠå€æŽãããã®ããèšé²ãããããšã¯ã»ãšãã©ãããŸããã
以äžã¯ãã¥ãŒããŒã¹ã®ãžã§ãã¯ãŒã«ãŒã䜿çšããç°¡ç¥åãããäŸã§ãã
def process_invoice(invoice_id):
invoice = Invoice.get(id=invoice_id)
if invoice.is_paid:
return # Job exits early, nothing to process
try:
payment_result = charge(invoice)
if payment_result.success:
invoice.mark_as_paid()
else:
invoice.mark_as_failed()
except PaymentError:
queue.retry(process_invoice, invoice_id)
ãã°ãããããããšã¯ process_invoice startedãç¶ã㊠PaymentError caughtããããæç€ºçã«ã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ããªãéãããžã§ãã®æææ±ºå®ãã¹ãäŸãã°ãžã§ããæ©æã«çµäºããçç±ãã©ã®ãããªå€åãèµ·ãã£ãããªã©ã¯èŠããŸãããæéã®çµéãšãšãã«ãããããç²ç¹ã¯èç©ããã管çäžèœã«é¥ããŸãã
éåæå®è¡ã«ãããäžè¬çãªé害ã¢ãŒã
éåæãžã§ãã§ã¯ãåŸæ¥ã®ãªã¯ãšã¹ãããŒã¹ã®ã³ãŒããšã¯ç°ãªãããã€ãã®ã«ããŽãªã®é害ãçºçããŸãã
- éšåå®è¡: ãžã§ãã¯éå§ããããéäžã§å€±æããã·ã¹ãã ãäžæŽåãªç¶æ ã«ãªã
- ãµã€ã¬ã³ãçµäº: æ¡ä»¶ã«ãããžã§ããã³ã¢ããžãã¯ãå®è¡ã§ããªããããã®æ±ºå®ã¯èšé²ãç£èŠããããªã
- åé·ãªå詊è¡: éã¹ãçãªæäœïŒ
send_email()ïŒã¯ã¿ã€ã ã¢ãŠãåŸã«å詊è¡ãããéè€ããã¢ã¯ã·ã§ã³ãçºçããŸã - å€ç«ãããžã§ã: ã¹ããŒãã®å€æŽãããŒã¿ã®åé€ã«ãããžã§ãã®ãã€ããŒããç¡å¹ã«ãªããŸããããžã§ãã·ã¹ãã ã¯ãšã©ãŒãªãã§åŠçãç¶è¡ããŸãã
ãããã®åé¡ã¯ã©ãã埮åŠãªå ŽåããããŸãã忣ã·ã¹ãã ã§ã¯å詊è¡ã倱æãæ³å®ããããããåäœãç°åžžã«ãªã£ãã¿ã€ãã³ã°ãç¹å®ããããšãé£ãããªããŸãããžã§ãã®éãå¢å ãããšããããã®å°ããªäžæŽåãäžæµãžã®åœ±é¿ã倧ããããŸãã
éçšã€ã³ãã©ã®å¯èŠæ§ãæ¬ åŠããŠããçç±
ãžã§ãã·ã¹ãã ã§ã¯ãã€ã³ããã¹ãã¯ã·ã§ã³ãããã¹ã«ãŒããããšèä¹ æ§ãåªå ãããããšããããããŸããI/OãªãŒããŒããããåæžããããããã°åºåã¯ããã©ã«ãã§æå°éã«æããããŠããŸããå®è¡ãã¹ã¯éåžžã颿°åŒã³åºããå€éšã©ã€ãã©ãªããŸãã¯ãã¬ãŒã ã¯ãŒã¯ã¬ãã«ã®æœè±¡åã®äžã«é ãããŠããŸããã«ã¹ã¿ã ã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ãå°çšã®ãã¬ãŒã¹æ©èœããªããã°ãéçºè ã¯ãžã§ãããžãã¯ãæå³ãããšããã«åäœãããã©ãããæ€èšŒããããã«å¿ èŠãªããŒã¿ãåŸãããšãã§ããŸããã
ããã«ãããã¯ã°ã©ãŠã³ããžã§ãã®å¯èŠ³æž¬æ§ããŒã«ã¯ããã°ãã°åŸä»ãã§å°å ¥ãããŸããã¡ããªã¯ã¹ã¯ãžã§ãæ°ã倱æçã远跡ããããšã¯ã§ããŸãããã©ã®ã³ãŒããã¹ãå®è¡ãããããã©ã®æ±ºå®åå²ãå®è¡ããããã¯è¿œè·¡ã§ããŸãããéçºè ã¯ãæ£åšãããã°ãæšæž¬ã«åºã¥ããŠããžã§ãã®æåãäºåŸçã«åæ§ç¯ãããããããŸããã
ããäžã€ã®åé¡ã¯ãã³ãŒããšãªãã¬ãŒã·ã§ã³ã®åé¢ã§ãããžã§ãå®çŸ©ã¯ãªããžããªã«ä¿åãããŠãããããããŸãããããã®ããªã¬ãŒãç°å¢å€æ°ããªãã©ã€ããªã·ãŒãå€éšäŸåé¢ä¿ã¯å¥ã®å Žæã§èšå®ãããŠããããšããããããŸãããã®åé¢ã«ããããžã§ãã®æåããšã³ãããŒãšã³ãã§çè§£ããããšãå°é£ã«ãªããŸãã
忣å®è¡ãè匱ãªã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ããããŠåé¢ããæ§æã®çµã¿åããã¯ãäžéææ§ãšããææªã®äºæ ãåŒãèµ·ãããŸããããŒã ã¯éåæãã€ãã©ã€ã³ãžã®ä¿¡é Œã倱ãããã°ã¯ãŠãŒã¶ãŒãåçã«åœ±é¿ãäžãããŸã§æ€åºãããŸããã
ãã®è€éãã«å¯ŸåŠããã«ã¯ããšã³ãžãã¢ã¯ãžã§ããå®è¡ãããã ãã§ãªããç°å¢ãã¹ã±ãŒã«ãåãããæå³ãããããžãã¯ãã¹ã«æ²¿ã£ãŠãããã©ãããæ€èšŒããæ¹æ³ãå¿ èŠã§ãããã®ããã«ã¯ãä»®å®ã«åºã¥ãç£èŠããã远跡å¯èœã§æ€èšŒå¯èœãªå®è¡ã¢ããªã³ã°ãžã®ç§»è¡ãå¿ èŠã§ãããããã«ã€ããŠã¯ä»¥äžã®ã»ã¯ã·ã§ã³ã§èª¬æããŸãã
ãæåŸ å®è¡ãã¹ãã®æ¬åœã®æå³
éåæãžã§ãåŠçã¯ãçŸä»£ã®ã·ã¹ãã ã«æ°ããªè€éãããããããŸãããããã®ã¿ã¹ã¯ã¯ãå€ãã®å ŽåããŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ãšã¯ç¬ç«ããŠãHTTPãµã€ã¯ã«ã®å€ã§å®è¡ãããæã«ã¯å®å šã«å¥ã®ã€ã³ãã©ã¹ãã©ã¯ãã£äžã§å®è¡ãããŸãããã®åœ¹å²ã¯æ¥µããŠéèŠã§ãè«æ±æžã®çºè¡ãããŒã¿ã®ã¯ãªãŒã³ã¢ãããåç»ã®ãšã³ã³ãŒããã¬ããŒãã®çæããµãã¹ã¯ãªãã·ã§ã³ã®èª²éãéç¥ãšãã£ãã¯ãŒã¯ãããŒãæ¯ããŠããŸããããããéåæåŠçã®æ§è³ªäžãéçºè ãåæããžãã¯ãæ§ç¯ããéã«é Œãã«ããå¯èŠæ§ãã³ã³ããã¹ãããããŠå®å šå¯Ÿçãæ¬ åŠããŠããããšããããããŸãããæ³å®ãããå®è¡ãã¹ãã®æå³ãçè§£ããããšã¯ããã®äžéæãªå±€ã«ä¿¡é Œæ§ãšéææ§ãããããããã®éèŠãªã¹ãããã§ãã
ç°¡åã«èšãã°ãããã¯ã°ã©ãŠã³ããžã§ãã®æ³å®å®è¡ãã¹ãšã¯ãéåžžæããã³äŸå€çãªç¶æ³äžã§ãžã§ããå®è¡ãããšæ³å®ãããäžé£ã®åŠçãšå€æåå²ã®ããšã§ããã¿ã¹ã¯å ã§ã®ããŒã¿ã®æµããåå²ã®è©äŸ¡æ¹æ³ã蚱容ãããçµæãå€éšã·ã¹ãã ãšã®ããåããå®çŸ©ããŸããããã«éèŠãªã®ã¯ãç¹å®ã®å ¥åãŸãã¯ã·ã¹ãã ç¶æ ã«ãã£ãŠãžã§ããããªã¬ãŒãããéã«ãéçºè ãæ³å®ããåäœã®æå³ããšã³ã³ãŒãããããšã§ãã
ããã³ããšã³ãã³ã³ããŒãã³ããRESTãšã³ããã€ã³ããšã¯ç°ãªããããã¯ã°ã©ãŠã³ããžã§ãã¯å®¹æã«èŠ³æž¬å¯èœãªå ¥åºåãæã¡ãŸãããããªã¬ãŒã¯ã€ãã³ããcronã¹ã±ãžã¥ãŒã«ããããã¯ããŒã¿ç¶æ ã®å€åãªã©ã§ãããžã§ããåŒã³åºãããé ã«ã¯ãå ã®ã³ã³ããã¹ããå€åããŠããå¯èœæ§ããããŸãããã®ããããžã§ãã®å éšãããŒãææ¡ã»è¿œè·¡ã§ããªããã°ããžã§ããæ£ããåäœãããã©ãããæ€èšŒããããšã¯å°é£ã§ãã
å°èŠæš¡ãªã·ã¹ãã ã§ã¯ãããã¯ã°ã©ãŠã³ããžã§ãã®åäœãæ€èšŒããã«ã¯ããã°ãããã€ãèªãã ããæåã§åå®è¡ãããããããšã«ãªããŸããããããæ°åã®ãã¥ãŒãè€æ°ã¹ãããã®ãã€ãã©ã€ã³ãçžäºäŸåããã¯ãŒã«ãŒãªã©ãååšããè€éãªç°å¢ã§ã¯ããã®ãããªæåæ€èšŒã¯äžå¯èœã§ããéçºè ã¯ãã°ãã°æ¬¡ã®ãããªçåã«çŽé¢ããŸãã
- ãžã§ãã¯äºå®ãããŠãããã¹ãŠã®ã¹ããããå®äºããŸããã?
- æ¡ä»¶åå²åŸã«éãã«å€±æããŸããã?
- ãã©ãŒã«ãã㯠ããžãã¯ãã䜿çšãã¹ãã§ãªããšãã«äœ¿çšãããŸããã?
- å詊è¡ã«ãã£ãŠæå³ããªãéè€ãå¯äœçšãçºçããŸããã?
ãããã¯çè«çãªæžå¿µã§ã¯ãããŸããããžã§ããããŒã®ãã¹ã¯ãæ°ã¥ãããªããã¡ã«ããŒã¿æå€±ãè«æ±æŒããã³ã³ãã©ã€ã¢ã³ã¹éåããããŠãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®äœäžãåŒãèµ·ããå¯èœæ§ããããŸãããã®åœ±é¿ã¯åŸ®åŠã§ãæãããªã·ã¹ãã ãšã©ãŒãšã¯é¢é£ããªããããæ°æ¥ããæ°é±éãæ°ã¥ãããªããŸãŸã«ãªãããšããããããŸãã
ãããããµã€ã¬ã³ããšã©ãŒã®ãªã¹ã¯ã軜æžããããã«ãããŒã ã¯åããã¯ã°ã©ãŠã³ããžã§ãã®æ³å®ãããå®è¡ãã¹ãå®çŸ©ãã远跡ããå¿ èŠããããŸããããã¯ãã³ãŒãå ã§äœãèµ·ããã¹ãããææžåããã ãã§ãªããå®éã®å®è¡ããããã®æ³å®ãšæ¯èŒã»èгå¯ããã·ã¹ãã ãæ§ç¯ããããšãæå³ããŸããããããããšã§åããŠãéçºè ã¯ãšããžã±ãŒã¹ãå詊è¡ããããã¯æ§èœäœäžããç°å¢äžã§ãã£ãŠãããžã§ããèšèšéãã«åäœããŠããããšã«èªä¿¡ãæã€ããšãã§ããŸãã
ããã¯ã°ã©ãŠã³ããžã§ãããžãã¯ã®çæ³çãªãããŒã®å®çŸ©
æ³å®ãããå®è¡ãã¹ã«ã¯ãããã¯ã°ã©ãŠã³ããžã§ãã®ã©ã€ããµã€ã¯ã«å šäœãå«ãŸããŸããå ¥åã®åä¿¡ãšæ€èšŒãããæ±ºå®æšãšãµãŒãã¹åŒã³åºããæçµçãªæŽæ°ãšåºååŠçãŸã§ãå«ãŸããŸãããŸããæåãããŒãšãšã©ãŒãããŒã®äž¡æ¹ãã«ããŒããå¿ èŠããããããããŒãã¹ã®ã¿ãã«ããŒããå¿ èŠããããŸããã
äŸãã°ãä¿çäžã®éç¥ãååŸããããŒãœãã©ã€ãºãããµãŒãããŒãã£APIçµç±ã§éä¿¡ããéä¿¡æžã¿ãšããŠããŒã¯ãããžã§ããèšèšãããŠããå Žåããããã®åã¹ããããç£èŠããèæ ®ããå¿ èŠããããŸãããã³ãã¬ãŒãã®äžè¶³ã«ããããŒãœãã©ã€ãºã¹ãããã倱æãããžã§ããéä¿¡ãå®å šã«ã¹ãããããå Žåããã®ãã¹ã®å€æŽã¯åãªãå¯äœçšã§ã¯ãªããéèŠãªãã®ãšããŠæ±ãå¿ èŠããããŸãã
çæ³çãªãã¹ã«ã¯ãçµäºæ¡ä»¶ãšè£åããžãã¯ãå«ãŸããŸããäŸåé¢ä¿ãã¿ã€ã ã¢ãŠãããå Žåãã©ã®ãããªåŠçãè¡ãããã¹ãã§ããããïŒã¡ãŒã«ãµãŒãã¹ã«ã¢ã¯ã»ã¹ã§ããªãå Žåã®é©åãªãã©ãŒã«ããã¯ã¯äœã§ããããïŒãããã¯ãšããžã±ãŒã¹ã§ã¯ãªããæåŸ ãããå®è¡ã¢ãã«ã®äžéšã§ããã芳å¯å¯èœãã€æ€èšŒå¯èœã§ãªããã°ãªããŸããã
蚱容å¯èœãªå®è¡ãã¹ãšäºæããªãå®è¡ãã¹ã®äŸ
å®è¡ãã¹ã¯ãããŒã¿ãç°å¢ãã·ã¹ãã ã®å¥å šæ§ã«ãã£ãŠå€åããå¯èœæ§ããããŸããéèŠãªã®ã¯ã蚱容å¯èœãªå€åãšãå®éã®åé¡ã瀺åããéžè±ãåºå¥ããããšã§ãã
蚱容ã§ããããªãšãŒã·ã§ã³ãšããŠã¯ãåŠçããã¬ã³ãŒãããªãå Žåã«ãžã§ããæ©æçµäºããããšãã£ããã®ãèããããŸããããã¯å¹ççãã€æå³çãªãã®ã§ãããŸãããã¬ãã¢ã ãŠãŒã¶ãŒã®ã¿ã«ã¡ãŒã«ã®ãµãã»ãããéä¿¡ããæ¡ä»¶ä»ãããžãã¯ã蚱容ã§ããŸãã
äºæãã¬ãã¹ã¯æ§ã ã§ããäŸãã°ã倿ãæé»çã«ã¹ããããããžã§ããã¹ãçæ§ã®ãªãå詊è¡ã«ãã£ãŠäœåãªæžã蟌ã¿ãå®è¡ãããžã§ãããã£ãããããŠããªãäŸå€ã«ãã£ãŠéäžã§åæ¢ãããžã§ããªã©ã§ãããããã®ãžã§ãã¯ãäžæµã®ã·ã¹ãã ã§ãã¿ãŒã³ãæããã«ãªã£ããã顧客ããåäœã®äžè²«æ§ããªããšããå ±åãåãããŸã§ãæ°ã¥ãããªãããšããããããŸãã
äŸãã°ïŒ
if not order.is_complete:
return # Acceptable exit
# transform and send data
ããã¯æå¹ã§ãããã ããå詊è¡ãã¬ãŒã ã¯ãŒã¯ã颿°å šäœãåå®è¡ãããã®é¢æ°ã«æ€èšŒããžãã¯ãšéä¿¡ããžãã¯ã®äž¡æ¹ãå«ãŸããŠããå Žåãç¹°ãè¿ãã®åŒã³åºãã«ãã£ãŠéè€ããéä¿¡ãéšåçãªå€æŽãçºçãããããªããŸãã
äœãæåŸ ãããŠããããçè§£ããããšã¯ããã¹ãã±ãŒã¹ã®ããã«èããããšãæå³ããŸããããã®å ¥åãšãã®ç¶æ ãäžããããå Žåãäœãã©ã®ãããªé åºã§çºçããã¯ãã§ããïŒããããããéžè±ãèå¥ããŠãã¹ãã§ããããã«ãªããŸãã
å®ã·ã¹ãã ã«ãããéžè±ã®ãªã¹ã¯
å®è¡ãã¹ã®éžè±ã¯ã埮åŠãªãããå±éºãªå ŽåããããŸããã¿ã€ã ã¹ã¿ã³ãã®æŽæ°ãã¹ãããããããã€ãã³ãã®çºè¡ã«å€±æããããããžã§ãã¯ãã¡ããªã¯ã¹äžã§ã¯æåãšè¡šç€ºãããå¯èœæ§ããããŸãããããããã®çµæãšããŠçãã圱é¿ã¯ãåŸã ãè«æ±ã®é å»¶ãã¬ããŒãã®ç Žæããããã¯äžæµã®ãµãŒãã¹é害ãšãã£ã圢ã§çŸããå¯èœæ§ããããŸãã
äžè¬çãªãªã¹ã¯ã¯æ¬¡ã®ãšããã§ãã
- å詊è¡ã®å¢çãäžæç¢ºã§ããããšã«ããåªçæ§ã®éå
- äžæµã·ã¹ãã ãžã®çŽæãç ŽãããïŒå¯äœçšãçºçããåã«ã¿ã¹ã¯ãå®äºãšããŠããŒã¯ãããªã©ïŒ
- ãã§ãã¯ãã€ã³ããã¹ãããããããã«æéããŒã¹ã®ããžãã¯ã倱æãã
- ã»ãã¥ãªãã£ãã³ã³ãã©ã€ã¢ã³ã¹ã®é²åºãåŒãèµ·ãããµã€ã¬ã³ããã§ã€ã«ãªãŒãã³åäœ
ã·ã¹ãã ãäœãæåŸ ãããŠããããæç¢ºã«çè§£ããŠããªããšãããããéå®³ãæ€åºããã®ã¯å°é£ã§ããããã«æªãããšã«ãããŒã ãå®éã®å®è¡ããªãã¡ã¬ã³ã¹ãã¹ãšç©æ¥µçã«æ¯èŒããªãéãããããã®é害ã®å€ãã¯çè·¡ãæ®ããªãã®ã§ãã
äºæ³ãããå®è¡ãã¹ãã¢ãã«åããŠæ€èšŒããããšã§ãéçºããŒã ã¯ãããã®åé¡ãæ©æã«çºèŠãããžã§ãã®åäœã«é¢ããèªåç£èŠãå°å ¥ããããééçãã€äºæž¬å¯èœãªé害ãçºçããã·ã¹ãã ãäœæã§ããŸãã
ããã¯ã°ã©ãŠã³ããžã§ãã®å®è¡ããã¬ãŒã¹ããã³æ€èšŒããææ³
å®ç°å¢ã«ãããããã¯ã°ã©ãŠã³ããžã§ãã®æåã远跡ããã«ã¯ããã°ãã¹ããŒã¿ã¹ã³ãŒãã ãã§ã¯äžååã§ããå®è¡ãã¹ã¯ãåå²ããžãã¯ãéåæåäœããªãã©ã€ãå€éšAPIã®åäœãç«¶åç¶æ ãªã©ã«ãã£ãŠåœ¢æãããŸããã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ãæç¢ºãªãããŒã¢ããªã³ã°ããªããã°ãéçºè ã¯ãžã§ãã®å®è¡æ¹æ³ãæšæž¬ãããããããŸããã广çãªãã¬ãŒã¹ãšæ€èšŒã¯ãè€æ°ã®ã·ã°ãã«ãçµã¿åãããŠãå®éã«äœãèµ·ãã£ãã®ããä¿¡é Œæ§ã®é«ãåœ¢ã§ææ¡ããããšã«ããã£ãŠããŸããããã«ã¯ããã°ããã¬ãŒã¹ãã©ã³ã¿ã€ã ã¡ããªã¯ã¹ããžã§ãã¡ã¿ããŒã¿ãå®è¡äžã«ååŸãããã³ã³ããã¹ããã³ãããªã¹ããªã©ãå«ãŸããŸãã
é©åã«ã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ãããã·ã¹ãã ã¯ããžã§ããã¹ããããã¹ããããããããµã€ã¬ã³ããšã©ãŒãçºçããããäžå¿ èŠã«å詊è¡ããããããããã¯æ³å®ãããäžæµã®ã¢ã¯ã·ã§ã³ãããªã¬ãŒããã«å®äºããããæ€åºããã®ã«åœ¹ç«ã¡ãŸããéèŠãªã®ã¯ãåŸä»ãã§ã¯ãªããæåãããã¬ãŒãµããªãã£ãèšèšããããšã§ããããããããšã§ãéçšäžã®åé¡ã®ãããã°ããžã§ãã®æåç£æ»ã®éã«ãæŽå¯ãåŸãããšãã§ããŸãã
ãã°èšé²ã®ãã¹ããã©ã¯ãã£ã¹ïŒäœããã©ã®ããã«èšé²ããã
ãã°ã¯ãããã¯ã°ã©ãŠã³ããžã§ãå ã§äœãèµ·ãã£ãŠããããçè§£ããããã«éçºè ã䜿çšããäž»èŠãªããŒã«ã§ããç¶ããŠããŸããããããã»ãšãã©ã®ãã°ã¯æµ ãããããã¯äžè¬çãªå 容ããèšé²ãããŠããããå¶åŸ¡ãããŒããžã§ãã®ç¶æ é·ç§»ã«é¢ããè©³çŽ°ãªæ å ±ã¯ã»ãšãã©æäŸãããŠããŸããããã°ãå®è¡ãã¹ã®æ€èšŒã«åœ¹ç«ãŠãã«ã¯ããã°ãæ§é åãããäžè²«æ§ããããã³ã³ããã¹ããèªèããå¿ èŠããããŸãã
ãžã§ãã®äž»èŠãªã¹ãããããšã«ããžã§ãIDãŸãã¯çžé¢IDãä»å ããæå³ã®ããã¡ãã»ãŒãžããã°ã«èšé²ããå¿ èŠããããŸããã¡ãã»ãŒãžã«ã¯ä»¥äžã®å 容ãå«ããå¿ èŠããããŸãã
- ãžã§ãã®çŸåšã®ã¹ããããŸãã¯ãã§ãŒãº
- å ¥åå€ãŸãã¯æ±ºå®ã³ã³ããã¹ã
- äžæµã®ã€ã³ã¿ã©ã¯ã·ã§ã³ã®æŠèŠïŒAPI ããã®å¿çã¹ããŒã¿ã¹ãªã©ïŒ
- ãã©ãŒã«ããã¯ããžãã¯ãŸãã¯å詊è¡ã¹ããŒã¿ã¹
- æç€ºçãªçµæïŒæåãéšåçãã¹ãããã倱æïŒ
å ·äœçãªäŸãæããŸããšã以äžã®éãã§ãã
logger.info("step=start_transform", job_id=job.id)
logger.info("step=send_email", to=user.email, status=delivery_status)
logger.info("job_complete", job_id=job.id, outcome="success")
ãã°ã«ã¯ãäœãèµ·ãã£ããã ãã§ãªããäœãã¹ããããããã®ãããããŠãã®çç±ãèšè¿°ããå¿ èŠããããŸãããã°è¡ãæ¬ èœããŠããå Žåã§ããååšããå Žåãšåæ§ã«éèŠãªæå³ãæã€ããšããããŸããããŒã ã¯çµäºãã€ã³ããèšé²ããå¿ èŠããããŸããç¹ã«ãããŒã¿ã®æ¬ èœãç¡å¹ãªç¶æ ãªã©ã®ç¶æ³ã«ãããžã§ããæ©æçµäºããå Žåã¯éèŠã§ããçµäºãã€ã³ããèšé²ããªããšãå®éã«ã¯èšèšã©ããã«çµäºããŠããã«ããããããããžã§ãã忢ããããã«èŠããå¯èœæ§ããããŸãã
æåŸã«ããã°ã®äžå 管çãšã€ã³ããã¯ã¹äœæã¯äžå¯æ¬ ã§ããè€æ°ã®ãµãŒãã¹ãæéæ ã«ããã£ãŠãã°ãã¯ãšãªããçžé¢é¢ä¿ãåæããæ©èœããªããã°ãããšããã°ãé©åã«æ§é åãããŠãããšããŠãããžã§ããã¹ã®è¿œè·¡ã«äœ¿çšããããšã¯å°é£ã§ãã
ãã¥ãŒããµãŒãã¹ãããŒã¿ã¹ãã¢éã®ãžã§ããããŒã®è¿œè·¡
ããã¯ã°ã©ãŠã³ããžã§ãã¯è€æ°ã®ã·ã¹ãã ã«ãŸãããããšããããããŸããã¿ã¹ã¯ã¯ã¯ãŒã«ãŒå ã§éå§ãããããŒã¿ããŒã¹ãšããåãããAPIãåŒã³åºããå¥ã®ãžã§ãããã¥ãŒã«è¿œå ããå éšç¶æ ãæŽæ°ããããšããããŸãããããããã¬ãŒã¹ã远跡ããã«ã¯ããã°ã ãã§ã¯äžååã§ããå ±æã³ã³ããã¹ãã«åºã¥ããŠãããã®ã€ãã³ããã€ãªãåããã忣ãã¬ãŒã¹ãå¿ èŠã§ãã
ãã¬ãŒã¹IDãŸãã¯ãžã§ãIDãããžã§ãã«é¢é£ããã·ã¹ãã ã®ãã¹ãŠã®éšåã«äŒæãããããšããå§ãããŸããããã«ã¯ããã¥ãŒã¡ãã»ãŒãžãHTTPããããŒãããŒã¿ããŒã¹ã¢ãããŒã·ã§ã³ãããã«ã¯ã«ã¹ã¿ã ãã¬ã¡ããªãã£ãŒã«ããå«ãŸããŸãã
äŸãã°ããããžã§ããã€ãã³ãã«ãã£ãŠããªã¬ãŒããã2ã€ã®ãµããžã§ãããã¥ãŒã«è¿œå ããå Žåã3ã€ã®ãžã§ãã¯ãã¹ãŠãã¬ãŒã¹ã³ã³ããã¹ãå ã§å ±éã®èŠªIDãå ±æããå¿ èŠããããŸããããã«ããããªãã¶ãŒãããªãã£ãã©ãããã©ãŒã ã¯å æé¢ä¿ã®é£éãåæ§ç¯ããã©ã®ãã¹ãå®è¡ãããã©ã®ãã¹ãã¹ãããããããã瀺ãããšãã§ããŸãã
trace_id = generate_trace_id()
queue.send("subtask_a", trace_id=trace_id)
queue.send("subtask_b", trace_id=trace_id)
ãµãã¿ã¹ã¯ã倱æããããå åŒã¿ã¹ã¯ãšã¯ç°ãªãåäœãããå Žåããã®å·®ç°ã¯ã¿ã€ã ã©ã€ã³äžã§è¿œè·¡ã»å¯èŠåãããŸãããã®ç²åºŠã¬ãã«ã«ããããã³ããªãã®äžå ·åãäžè²«æ§ã®ãªãåå²ãæå³ããªãç«¶åç¶æ ãªã©ãçºèŠãããããªããŸãã
忣ãã¬ãŒã¹ã¯ãã¹ãããéã®æéãæž¬å®ããã®ã«ã圹ç«ã¡ãé å»¶ã忢ãçºçããŠããå Žæãæããã«ããŸããå€§èŠæš¡ãªã·ã¹ãã ã§ã¯ãããããå°ããªé å»¶ãéªã ããŸåŒã«å€§ãããªããããã©ãŒãã³ã¹ã®å€§å¹ ãªäœäžãSLAéåã«ã€ãªããå¯èœæ§ããããŸãã
ã»ãã³ãã£ãã¯ã€ãã³ããšã«ã¹ã¿ã ã¿ã°ã«ããèšæž¬
ãã°ãšãã¬ãŒã¹ã¯äœã¬ãã«ã®ãã¥ãŒãæäŸããŸãããã»ãã³ãã£ãã¯ã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ã¯æå³ãèšè¿°ããããšã§æç¢ºããé«ããŸããéèŠãªé·ç§»ããã¡ã€ã³ã€ãã³ãã«ã¿ã°ãä»ããããšã§ãã·ã¹ãã ã¯çã®ãã¬ãŒã¹ããã容æã«çè§£ã§ããã·ã°ãã«ãçæã§ããŸãã
ãŠãŒã¶ãŒã®ãªã³ããŒãã£ã³ã°ãåŠçãããžã§ããèããŠã¿ãŸããããã»ãã³ãã£ãã¯ã€ãã³ãã«ã¯æ¬¡ã®ãããªãã®ãå«ãŸããŸãã
- ãªã³ããŒãã£ã³ã°éå§
- ã¡ãŒã«èªèšŒæžã¿
- ããããã¡ãŒã«ãéä¿¡ããŸãã
- ãŠãŒã¶ãŒãããã£ãŒã«äœæ
- ãªã³ããŒãã£ã³ã°å®äº
ãããã¯ããããããŠãŒã¶ãŒIDããžã§ãIDãç°å¢ãªã©ã®ã¿ã°ãä»ãããã¬ã¡ããªã€ãã³ããšããŠçºè¡ã§ããŸãããããã®ã€ãã³ãã¯ãããã·ã¥ããŒãã®æ§ç¯ããããŒã®å®å šæ§ã®æ€èšŒããããŠæåŸ ãããã€ãã³ããæ¬ èœããŠãããé åºãééã£ãŠãããããå Žåã«ã¢ã©ãŒããçºããããã«äœ¿çšã§ããŸãã
ããã¯ããã¹ãŠã®ãžã§ããç¹å®ã®ãã€ã«ã¹ããŒã³ã«å°éããããšã確èªãããå Žåã«ç¹ã«äŸ¿å©ã§ããäŸãã°ã10,000ä»¶ã®ãªã³ããŒãã£ã³ã°ãžã§ããããªã¬ãŒããããã®ãã¡9,842ä»¶ã®ã¿ãçºè¡ãããå Žåã onboarding_complete調æ»ãã¹ãå®éåå¯èœãªã®ã£ããããããŸãã
ã¿ã°ä»ãã¯ããžã§ãã®å®è¡ãšããžãã¹ææã®çžé¢é¢ä¿ãææ¡ããã®ã«ã圹ç«ã¡ãŸããç¹å®ã®ã€ãã³ãã®çµã¿åãããåžžã«ãŠãŒã¶ãŒã®é¢è±ããµããŒããã±ããã®å¢å ã«ã€ãªããå Žåããããã®ãã¹ãèŠçŽããæé©åããããšãã§ããŸãã
ã»ãã³ãã£ãã¯ã»ã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ã¯ãçã®å®è¡ãæ§é åãããåäœã«å€æããå€§èŠæš¡ãªæ€èšŒãå¯èœã«ããŸãããŸããã·ã¹ãã ãå éšã§ã©ã®ããã«åäœããŠãããã ãã§ãªãããã¡ã€ã³ã¬ãã«ã§äœãå®è¡ããŠãããã«çŠç¹ãåœãŠãããšã§ããã°ããã¬ãŒã¹ãè£å®ããŸãã
ã³ãŒãããããã¯ã°ã©ãŠã³ããžã§ãã®ãã¹ãèŠèŠåãã
ããã¯ã°ã©ãŠã³ããžã§ããããã€ãã®é£ç¶ããã¹ããããããè€éã«ãªããšãã³ãŒãã ãã§ãã®å®è¡ãçè§£ããããšã¯ãŸããŸãå°é£ã«ãªããŸããæ¡ä»¶åå²ãå詊è¡ãéåæãã¥ãŒããã«ããµãŒãã¹ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãªã©ã«ããããžã§ãã®å®éã®ãããŒã¯èŠãã«ãããªããŸãããããã®ãã¹ãèŠèŠåããããšã¯ãéçºè ãæ³å®ããã·ã¹ãã ã®åäœãšãæ§ã ãªã·ããªãªã«ãããã³ãŒãã®åäœãšã®éã®ã®ã£ãããåãã广çãªæ¹æ³ã§ãã
ãã° ãã¡ã€ã«ãã¹ã¿ã㯠ãã¬ãŒã¹ã®ã¿ã«é Œãã®ã§ã¯ãªãããã€ã¢ã°ã©ã ã䜿çšãããšãããã¯ã°ã©ãŠã³ã ãžã§ããã·ã¹ãã å šäœã§ã©ã®ããã«é²åããçžäºäœçšããããç£æ»ããããã°ãäŒéããçŽæçãªæ¹æ³ãæäŸãããŸãã
å¶åŸ¡ãããŒãšå¯äœçšã®ãããã³ã°
å®è¡ãã¹ã®æ€èšŒã«ãããæå€§ã®èª²é¡ã®äžã€ã¯ããžã§ãããžãã¯ãæ¡ä»¶æ§é ããšã©ãŒåŠçãI/Oãšã€ã³ã¿ãŒãªãŒããããããšãå€ãããšã§ããå¶åŸ¡ãããŒãèŠèŠåããããšã§ãæžå¿µäºé ãåé¢ããéèŠãªæææ±ºå®ãã€ã³ããæç¢ºã«ããããšãã§ããŸãã
次ã®åçŽãª Python ããŒã¹ã®ãžã§ããèããŠã¿ãŸãããã
def process_user(user_id):
user = get_user(user_id)
if not user.is_active:
return
if not user.has_profile:
create_profile(user)
try:
send_welcome_email(user)
except EmailError:
log_email_failure(user)
äžèŠãããšãããã¯åçŽãªããã«æããŸãããããããã®ããžãã¯ãèŠèŠçã«ãããã³ã°ãããšã次ã®ããšãããããŸãã
- ãŠãŒã¶ãŒãéã¢ã¯ãã£ããªå Žåã®æ©æçµäºãã¹
- ãããã¡ã€ã«ãååšãããã©ããã«å¿ããæ¡ä»¶ä»ããã©ãŒã¯
- ã¡ãŒã«ã®å€±æãé»ã£ãŠåžåã§ãã try-except å¢ç
ãããæåã°ã©ããšããŠæããšãã³ãŒããèªããšãã«ã¯æããã§ã¯ãªãåå²ãã¹ãæããã«ãªããŸããäŸãã°ã send_welcome_email() 倱æããå Žåããžã§ãã¯å詊è¡ããããã¢ã©ãŒãã·ã¹ãã ã«ãéç¥ãããŸãããèŠèŠçãªå³è¡šã«ãããéçºè
ãã¬ãã¥ãŒæ
åœè
ã¯ãã®ãããªã®ã£ãããèŠèŠçã«ææ¡ã§ããŸãã
å¯äœçšã®ãããã³ã°ãåæ§ã«éèŠã§ãããããã¡ã€ã«ã®äœæãã¡ãŒã«ã®éä¿¡ããšã©ãŒã®ãã°èšé²ãšãã£ãå€éšã¢ã¯ã·ã§ã³ã¯ãããããç¶æ ã®å€åã衚ããŸãããããã®ã¢ã¯ã·ã§ã³ãèŠèŠåããããšã§ãæç¢ºãªã©ãã«ãä»ããããšãã§ããã³ãŒãã®åéšåãäœãå®è¡ããŠããã®ãããããŠã©ã®ã¹ããããäžæµã®ã·ã¹ãã ã«ãšã£ãŠéèŠãªã®ããæç¢ºã«ææ¡ã§ããŸãã
ã³ãŒããŸãã¯å®è¡æã®åäœãããã€ã¢ã°ã©ã ãèªåçæãã
ãžã§ãããžãã¯ãå€§èŠæš¡ã«ãªããšãæäœæ¥ã«ãããããŒãã£ãŒãäœæã¯äžå¯èœã«ãªããŸããå€§èŠæš¡ãªãžã§ããã¬ãŒã ã¯ãŒã¯ããæ°åçš®é¡ã®ãžã§ãã管çããããŒã ã§ã¯ãèªååãäžå¯æ¬ ã«ãªããŸããå®éã®ã³ãŒããå®è¡åäœãããã€ã¢ã°ã©ã ãçæããæ¹æ³ã¯ããã€ããããŸãã
äžã€ã®ã¢ãããŒã㯠éçåæããŒã«ã¯ã³ãŒããè§£æãã颿°åŒã³åºããæ¡ä»¶æãäŸå€ãããã¯ãèå¥ããå¶åŸ¡ãããŒãæç»ã§ããŸããããã¯ã決å®è«çãªããžãã¯ãšæå°éã®å®è¡æåå²ãæã€ãžã§ãã«é©ããŠããŸãã100%æ£ç¢ºã§ã¯ãããŸãããããããã®å³ã¯éçºããŒã ã«éçºã®åºç€ãæäŸããŸãã
å¥ã®æ¹æ³ã¯ ãã¬ãŒã¹é§ååèŠèŠåã·ã¹ãã ãæ§é åããããã°ãŸãã¯ãã¬ãŒã¹ãåºåããå ŽåãããŒã«ã¯ãžã§ãã®å®è¡ã°ã©ããåçã«åæ§ç¯ã§ããŸããäŸãã°ã
{ "event": "job_started", "job_id": "abc123" }
{ "event": "create_profile", "job_id": "abc123" }
{ "event": "send_email", "job_id": "abc123" }
{ "event": "job_complete", "job_id": "abc123" }
ãã®ã·ãŒã±ã³ã¹ã¯ãåã¹ããããããŒããšããŠããããããç¢å°ã§ãããŒãšåå²ããžãã¯ãã¿ã€ãã³ã°ãšã€ãã³ãã®é åºããæšæž¬ããŠè¡šç€ºããããšãã§ããŸãããã®ãããªããžã¥ã¢ã«ã¯ãã¹ããŒãžã³ã°ç°å¢ãæ¬çªç°å¢ã«ããããžã§ãã®åäœãããæ£ç¢ºã«åæ ããŸãã
æãå ç¢ãªã·ã¹ãã ã¯ãã³ãŒãæ§é ã«åºã¥ãããã€ã¢ã°ã©ã ãšå®è¡æã®æŽå¯ãçµã¿åããããã®ã§ãããã®ãã€ããªãããªã¢ãããŒãã«ãããããŒã ã¯çè«äžã®å®è¡ãã¹ãšå®éã®å®è¡ãã¹ã®äž¡æ¹ãèŠèŠåãããããã®éãã匷調衚瀺ããããšãã§ããŸãã
CI/CDãšäºåŸæ€èšŒã«ãããèŠèŠçæ€èšŒã®ã¡ãªãã
CI/CDãã€ãã©ã€ã³ã«èŠèŠçãªå®è¡ããããçµ±åããããšã§ããžã§ãã®åäœã®å€åãæ©æã«ææ¡ã§ããŸããéçºè ãæ°ããæ¡ä»¶ãå°å ¥ããããå詊è¡ããžãã¯ã倿ŽããããããšãæŽæ°ããããã€ã¢ã°ã©ã ã§æ°ããåå²ãå°éäžå¯èœãªã¹ãããããŸãã¯äžè¶³ããŠãããã©ãŒã«ããã¯ããã€ã©ã€ã衚瀺ã§ããŸãã
ããã«ãããããŒã ã¯å€æŽã®æ£ç¢ºæ§ã ãã§ãªããå®å šæ§ãšå¯èŠ³æž¬æ§ã確èªã§ããããã«ãªããŸããå³ã«ãã°åºåã®ãªãæ°ããçµäºãã¹ããããŒã«ããã¯ããžãã¯ã®ãªãæ°ããå¯äœçšã瀺ãããŠããå Žåããã®å€æŽã¯ãªãªãŒã¹åã«ç²Ÿæ»ããå¿ èŠããããŸãã
äºåŸæ€èšŒã«ãããŠãå³è¡šã¯äœãåé¡ã ã£ãã®ãã説æãã匷åãªããŒã«ãšãªããŸãããžã§ããã¢ã©ãŒãéç¥ã®ã¹ããããã¹ãããããããæ¡ä»¶ã®èŠèœãšãã«ãã誀ã£ãŠå詊è¡ãããããå ŽåãèŠèŠçãªããããããã°ããšã³ãžãã¢ä»¥å€ã®äººã§ãæ°ç§ã§ãã®ç¶æ³ãæç¢ºã«ææ¡ã§ããŸããããã«ãããæ ¹æ¬åå åæãè¿ éåãããå ±éçè§£ãä¿é²ãããŸãã
éçããžãã¯ãšã©ã³ã¿ã€ã ãã¬ãŒã¹ããããŠæ§é åãã€ã¢ã°ã©ã ãçµã¿åãããããšã§ããžã§ããå®è¡ãã¹ãåäœãšå®éã®åäœã®ã®ã£ãããåããããšãã§ããŸããããã«ããããã°ãåæžãããã ãã§ãªãããããã®ããã¯ã°ã©ãŠã³ãããã»ã¹ã«äŸåããã·ã¹ãã ã®ä¿¡é Œæ§ãåäžããŸãã
ç°ãªãå®è¡ãã¹ã®æ€åºãšåŠç
ããã¯ã°ã©ãŠã³ããžã§ãã¯éçã§ã¯ãããŸãããå ¥åãã¿ã€ãã³ã°ãã€ã³ãã©ã¹ãã©ã¯ãã£ã®ç¶æ³ããããã¯æè¿ã®ã³ãŒãæŽæ°ãªã©ã«ãã£ãŠåäœãå€åããå¯èœæ§ããããŸãããžã§ããæ³å®ãããããžãã¯ããéžè±ããéã«ãå®è¡ãã¹ã®åå²ãçºçããŸãããããã¯ãžã§ããå®å šã«å€±æããããšã¯ãããŸãããããããéžè±ã¯ãäŸå€ãçºçããªãããšãå€ãããžã§ãã¹ããŒã¿ã¹ã®èгç¹ããã¯ãæåãã®ããã«èŠãããããæ€åºãæãé£ãããã°ã®äžã€ã§ãã
ããããå€åãäºåã«æ€åºããã«ã¯ãèšæž¬ãšæšè«ã®äž¡æ¹ãå¿ èŠã§ããããããé©åã«åŠçããã«ã¯ãæŽåæ§ãä¿¡é Œæ§ãæãªãããšãªããåå²ãããŒã蚱容ããé©å¿ã§ããã·ã¹ãã ãèšèšããå¿ èŠããããŸãã
ãã¿ãŒã³ã®äžäžèŽããçžéç¹ãèŠã€ãã
ãžã§ãã®ä¹é¢ãæ€åºããæã广çãªæ¹æ³ã®äžã€ã¯ãæåŸ
ããããã¿ãŒã³ãšèŠ³æž¬ããããã¿ãŒã³ãæ¯èŒããããšã§ããæåãããžã§ãã4ã€ã®ãã¬ã¡ããªã€ãã³ããçæãããšä»®å®ãããšã start, validation, processing, complete ã€ãã³ãã®æ¬ èœãé åºå€æŽã¯ãéžè±ã瀺ããŠããå¯èœæ§ããããŸãã
äºæ³ããããã¿ãŒã³ã®äŸ:
event_sequence: [job_start, validate_payload, update_model, send_result, job_complete]
çç£äžã«æ€åºãããŸãã:
event_sequence: [job_start, validate_payload, job_complete]
ãã®éãã¯ã update_model ã®äžèãš send_result ã¹ããããããŸãããããã¯ãæ¡ä»¶åå²ããµã€ã¬ã³ããšã©ãŒããŸãã¯ç°å¢èšå®ã®èª€ããåå ã§ããå¯èœæ§ããããŸããæéã®çµéãšãšãã«ãåŸååæã«ãã£ãŠããããã®å€åãäžæçãªãã®ãªã®ãããããšãã·ã¹ãã å
šäœã«ããããã®ãªã®ããããããŸãã
ãã®ææ³ã¯ããžã§ããããŒãã€ãã³ãã¿ã€ã ã©ã€ã³ãšããŠèšé²ããããã¬ãŒã¹ããŒã¹ã®ã·ã¹ãã ã«ç¹ã«æå¹ã§ããæ©æ¢°åŠç¿ãšçµ±èšææ³ãé©çšããããšã§ãå žåçãªå®è¡ãã¿ãŒã³ãã¯ã©ã¹ã¿åããç°åžžãæ€ç¥ããããšãã§ããŸããé«åºŠãªåæãè¡ããªããŠããæ¢ç¥ã®æ£åžžãªãã¬ãŒã¹ãšæè¿ã®ãã¬ãŒã¹ãæ¯èŒããã ãã§ãæœåšçãªããžãã¯ã®å€åãçºèŠã§ããŸãã
ä¹é¢ã®ããäžã€ã®å åã¯ãã¿ã€ãã³ã°ã®äžèŠåæ§ã§ããéåžž300ããªç§ã§å®äºãããžã§ãã2ç§ãããããã«ãªã£ãå Žåãæ°ããªãªãã©ã€ã«ãŒããé·ãæ¡ä»¶ãã¹ããããã¯é ããäŸåé¢ä¿ãçºçããŠããå¯èœæ§ããããŸããå®è¡æéã®ãã¹ãã°ã©ã ã¯ãããããå€åãæ€ç¥ãã匷åãªææ®µãšãªããŸãã
ãã§ã€ã«ãã¡ãŒã¹ããå詊è¡ããã©ãŒã«ããã¯ã®ã¿ã€ãã³ã°
éžè±ãæ€åºããããšãã·ã¹ãã ã¯ã©ã®ããã«å¯Ÿå¿ããããæ±ºå®ããå¿ èŠããããŸããäºæããªããã¹ã®ãã¹ãŠã倱æãæ£åœåããããã§ã¯ãããŸãããå詊è¡ãå¿ èŠãªãã¹ãããã°ããã©ãŒã«ããã¯ããžãã¯ãå¿ èŠãªãã¹ããããé£éçãªãšã©ãŒãåé¿ããããã«è¿ éã«ãã§ã€ã«ãªãŒããŒããå¿ èŠããããã¹ããããŸãã
æ©ã倱æãã äžå€æ¡ä»¶ãç Žãããå ŽåãæŠç¥ã¯é©åã§ããäŸãã°ããžã§ãããŠãŒã¶ãŒã¬ã³ãŒãã®ååšãæåŸ ããŠããã«ãããããããäœãèŠã€ãããªãã£ãå Žåã空ã®ãªããžã§ã¯ãããã®ãŸãŸåŠçãç¶è¡ããã®ã§ã¯ãªãããšã©ãŒãçºçãããå¿ èŠããããŸããããã«ãããäžæµã®ã¢ã¯ã·ã§ã³ã®æŽåæ§ãç¶æãããåé¡ã®æ€åºã容æã«ãªããŸãã
å詊è¡ããžã㯠ãããã¯ãŒã¯ã¿ã€ã ã¢ãŠãããµãŒãã¹å©çšäžå¯ãªã©ã®äžæçãªåé¡ã«ãããžã§ãã倱æããå Žåã«åœ¹ç«ã¡ãŸãããã ããå詊è¡ã¯æ éã«èšèšããå¿ èŠããããŸãã以åã®ã¹ãããã®ç¹°ãè¿ããé¿ãããããå¯äœçšã®å°ãªãããžãã¯ã®ã¿ãã©ããããå¿ èŠããããŸãã
äŸïŒ
def job():
validate_input()
try:
retry(send_invoice) # only retry the external call
except ExternalError:
log_failure()
ãžã§ãæ©èœå šäœãå詊è¡ãããšãäºéæžã蟌ã¿ãéç¥ã®éè€ããŸãã¯ç¶æ ã®å€æŽã®äžäžèŽãçºçããå¯èœæ§ããããŸãã
ãã©ãŒã«ãã㯠äžéšã®ã¹ãããããªãã·ã§ã³ã§ãã£ãããæ£åžžã«æ©èœäœäžã蚱容ãããå Žåã«äŸ¿å©ã§ããäŸãã°ãã¡ããªã¯ã¹ãµãŒãã¹ãããŠã³ããŠããå Žåããžã§ãã¯ã³ã¢ããžãã¯ãç¶ç¶ããªããã¡ããªã¯ã¹ã®éä¿¡ãã¹ãããããå¯èœæ§ããããŸãããã ããããæ·±å»ãªåé¡ãé èœããªãããããã®ã¢ãããŒãã¯åžžã«æç¢ºã«ãã°ã«èšé²ããå¿ èŠããããŸãã
ããžãã¹ã«ãŒã«ã«å¯Ÿãããã¹ã®æ€èšŒ
ãžã§ããå®äºãããã©ããã確èªããã ãã§ã¯äžååã§ãããžã§ãã蟿ã£ããã¹ã¯ããžãã¹ã€ã³ãã³ããšäžèŽããŠããå¿ èŠããããŸãããã©ã°ã®äžè¶³ã«ããæ©æã«çµäºãããžã§ãã¯ãèšèšéãã«æ©èœããŠããå¯èœæ§ããããŸãããäžæµã®ããŒã¿ã«ã®ã£ãããçããŠããå¯èœæ§ããããŸãã
ããžãã¹ã«ãŒã«ã¯æé»çãªå Žåãå€ãã§ããäŸãã°ããã¹ãŠã®è«æ±æžã¯24æé以å ã«ç §åããå¿ èŠãããããã¹ãŠã®ãµã€ã³ã¢ããã«å¯ŸããŠãŠã§ã«ã«ã ã¡ãŒã«ãéä¿¡ãããå¿ èŠãããããã¹ãŠã®è«æ±å詊è¡ã远跡ããå¿ èŠãããããªã©ã§ãããããã®ããªã·ãŒã«ç §ãããŠãžã§ããã¹ãæ€èšŒããã«ã¯ãã»ãã³ãã£ãã¯ãªèªèãå¿ èŠã§ãã
ããã¯ããžã§ãåºåãšãã¡ã€ã³ã¡ããªã¯ã¹ãçžé¢ãããããšã§å®çŸã§ããŸããäŸãã°ã
- ãã¹ãŠã®æ¯ææžã¿æ³šæã¯åºè·ãžã§ããããªã¬ãŒããŠããŸãã?
- ãã¹ãŠã®ãªã³ããŒãã£ã³ã°å®äºã¯
welcome_email_sentã€ãã³ãïŒ - ã¢ã«ãŠã³ããééãããšãé¢é£ãããµãŒãã¹ãäžè²«ããŠã¯ãªãŒã³ã¢ãããããŸãã?
ããžãã¹ã«ãŒã«ã念é ã«ãžã§ããã¬ãŒã¹ãç£æ»ããããšã§ãããŒã ã¯éæ¥çã«ããªã·ãŒãé©çšã§ããŸããèªååã«ãã£ãŠããšã³ãã£ãã£ãæéæ ããŸãã¯ãžã§ãã®çš®é¡ããšã«ã°ã«ãŒãåã§ããã·ã°ãã«ãçºè¡ããããšãéžè±ã¯ã¬ãã¥ãŒãŸãã¯ä¿®æ£ã®ããã«ãã©ã°ä»ããããŸãã
ãã®ã¿ã€ãã®æ€èšŒã¯ãããã¯ã°ã©ãŠã³ãããã»ã¹ãã³ã³ãã©ã€ã¢ã³ã¹èŠä»¶ãæºããå¿ èŠãããèŠå¶ç£æ¥ã«ãããŠç¹ã«æçšã§ããå®è¡ãã¹ã®å¯èŠ³æž¬æ§ã¯ãªã¹ã¯ç®¡çã®äžéšãšãªããŸãã
ãã¹ããšç£èŠã®å®è¡æåŸ ã®ã¢ããªã³ã°
ããã¯ã°ã©ãŠã³ããžã§ãã®åäœæ€èšŒã¯ãæåŸ å€ãæç€ºçã«ã¢ãã«åããããšã§ãã¯ããã«å¹æçã«ãªããŸããããŒã ã¯ãä»®å®ãéšå€è ã®ç¥èã«é Œãã®ã§ã¯ãªããæ§ã ãªã·ããªãªã«ãããŠãžã§ããã©ã®ããã«åäœããã¹ããã圢åŒçã«è¡šçŸããããšã§ã¡ãªãããåŸãããŸãããããã®ã¢ãã«ã¯ããã¹ããå¯èŠ³æž¬æ§ãå®è¡ææ€èšŒã®ããã®éåçãšããŠæ©èœããŸããããã«ãããæåŸ ããããã¹ãã¬ãã¥ãŒããé©çšããå®éã®å®è¡ãã¬ãŒã¹ãšã®æ¯èŒã容æã«ãªããŸãã
ãæ£ãããç¶æ ãäºåã«å®çŸ©ããããšã§ããšã³ãžãã¢ãªã³ã° ããŒã ã¯ææ§ããæžãããã€ã³ã·ãã³ãåŸã®åæãå¹çåããç°åžžãæ©æã«æ€åºããèªåããŒã«ã匷åã§ããŸãã
ãã¹ãå¯èœãªæ§é ã§å®è¡ããžãã¯ã衚çŸãã
ãžã§ããæå³ãããã¹ããã©ãããšãä¿èšŒããããã®æãä¿¡é Œæ§ã®é«ãã¢ãããŒãã®äžã€ã¯ãå®è¡ããžãã¯ããã¹ãå¯èœãªã¢ãŒãã£ãã¡ã¯ãã«ãšã³ã³ãŒãããããšã§ããããã¯ãã¹ããŒããã·ã³ããããŒä»æ§ãæ§é åãããã·ããªãªããŸãã¯åäœå¥çŽãªã©ã®åœ¢ãåãå ŽåããããŸãã
ããšãã°ãããã¯ã°ã©ãŠã³ã ãžã§ãã®äºæ³ãããé²è¡ã衚ãããã«ç¶æ é·ç§»è¡šã䜿çšããããšãæ€èšããŸãã
| çŸåšã®ç¶æ | å ¥åæ¡ä»¶ | 次ã®ç¶æ | è¡å |
|---|---|---|---|
| INIT | æå¹ãªãã€ããŒã | æ€èšŒæžã¿ | ãã€ããŒãæ€èšŒ() |
| æ€èšŒæžã¿ | ãŠãŒã¶ãŒãã¢ã¯ãã£ã | SENT | ã¡ãŒã«ãéä¿¡ãã() |
| SENT | ã¡ãŒã«ã®æå | å®äºããŸãã | log_success() |
| SENT | ã¡ãŒã«ã®å€±æ | å詊è¡ä¿çäž | ã¹ã±ãžã¥ãŒã«å詊è¡() |
ãã®ãããªæ§é ãæŽåãããŠããã°ããŠããããã¹ããçµ±åãã¹ãã®éã«ãžã§ãããžãã¯ãæ€èšŒã§ããŸããåãã©ã³ããã·ãã¥ã¬ãŒãããããšã§ãé©åãªé·ç§»ããšã©ãŒåŠçãå¯äœçšã®çºçã確èªã§ããŸãã
ããäžã€ã®æ¹æ³ã¯ã ã·ããªãªããŒã¹ã®ãã¹ã ããžãã¹ãããŒã衚ããã®ãäŸãã°ïŒ
def test_inactive_user_exits_early():
user = User(active=False)
result = process_user(user)
assert result == 'skipped'
assert not email_was_sent(user)
ãã®ãã¹ãã¯ãæè¡çãªåäœã ãã§ãªããããžãã¹äžã®æåŸ å€ïŒéã¢ã¯ãã£ããªãŠãŒã¶ãŒã¯å ã«é²ãŸãªãã¹ãïŒããšã³ã³ãŒãããŸãããã¹ããéããŠæåŸ å€ãã¢ãã«åããããšã§ãèªååã«ãã£ãŠååž°ãããžãã¯ã®éžè±ãé²ãããšãã§ããŸãã
è¡åååž°åæã«ãããåæãžã§ãã®äœ¿çš
æ¬çªç°å¢ã§ã¯ãéçºæã«ã¯èæ ®ãããŠããªãã£ããã¹ãæããã«ãªãããšããããããŸãããã®ãããªãã¹ãçºèŠããããšãããŒã ã¯ããããã£ããã£ãã以äžã®æ¹æ³ã§åçŸããããšãã§ããŸãã åæãžã§ã ã¹ããŒãžã³ã°ç°å¢ãŸãã¯ãµã³ãããã¯ã¹ç°å¢ã§ããããã®åæã·ããªãªã¯ããšããžã±ãŒã¹ãå¢çæ¡ä»¶ãããã³ä»¥åã¯åå²ããŠãããã¹ãçã£ãŠæå³çã«äœæãããŠããŸãã
äŸãã°ããããžã§ããéšåçã«æŽæ°ããããªããžã§ã¯ãã®åŠçã«å€±æããå ŽåãåãããŒã¿ãããã¡ã€ã«ã䜿çšããŠåæãžã§ããæ§ç¯ã§ããŸãããã®ãžã§ããå¶åŸ¡ãããç°å¢ã§å®è¡ããããšã§ãæ°ããããžãã¯ãåé¡ãé©åã«è§£æ±ºã§ãããã©ãããæ€èšŒã§ããŸãã
ãããã®åæå®è¡ã¯ãã¢ããã°ã¬ãŒãããªãã¡ã¯ã¿ãªã³ã°ã®éã«ã圹ç«ã¡ãŸããæ°ãããžã§ãã³ãŒãããããã€ããåã«ãæ¢åã®ãã¹ã¢ãã«ãåçããããšã§ãäžè²«ããçµæãåŸãããšãã§ããŸããäžéšã®ããŒã ã§ã¯ããã¯ãªãã£ã«ã«å®è¡ãã¹ãã®ã«ã¿ãã°ãäœæãã倿Žã®ãã³ã«æ€èšŒããããšã§ããããèªååããŠããŸãã
åæãã¹ãã¯ã ã¢ã©ãŒã調æŽãžã§ããåºåããããã«ã€ã³ã¹ãã«ã¡ã³ããããŠããå Žå job_step_skipped ã€ãã³ãã§ã¯ãåæå®è¡ã«ãããæå¹ãªæ¡ä»¶äžã§ã®ã¿ã¢ã©ãŒããçºåãããããšãä¿èšŒãããŸããããã«ãããæ¬çªç°å¢ã§ã®èª€æ€ç¥ãé²ããã¢ã©ãŒãã®å質ãåäžããŸãã
ç£èŠããã·ã¥ããŒããšãã¹èªèã®é£æº
ç£èŠã§ã¯ãããžã§ãã¯å®è¡ãããããã ãã§ãªããããžã§ãã¯æåŸ ã©ããã«åäœãããããšããçããåŸãããŸããããã·ã¥ããŒããšã¢ã©ãŒãã¯ããã¹ãèªèããŠããå Žåãã€ãŸããã©ã®ã¹ããããå®è¡ãããã©ã®ã¹ããããã¹ããããããåé·ç§»ã«ããã£ãæéã远跡ããå Žåã«ããã䟡å€ãé«ãŸããŸãã
䟿å©ãªèŠèŠåã®äŸ:
- è€æ°ã¹ãããã®ãžã§ãã®ãããããªããã€ã³ãã瀺ããµã³ããŒãã€ã¢ã°ã©ã
- åå²ããžãã¯é »åºŠã®ããŒãããã
- é·æéå®è¡ãããã¯ãŒã¯ãããŒã®å®è¡ã€ãã³ãã®ã¿ã€ã ã©ã€ã³
- æ¯çæ¯èŒãã£ãŒã
job_startedããžjob_completed察job_skippedorjob_partial
ããã·ã¥ããŒãããã¹ã®æåŸ
å€ãšäžèŽãããããšã§ãããŒã ã¯ã·ã¹ãã äžã®åé¡ãããæ©ãæ€åºã§ããŸããäŸãã°ã job_step_email_sent ç«ã¡å¯ããªãã§ job_started å
šäœçãªãžã§ãã®æåçã¯è¯å¥œã«èŠããŠãããããŒã®éäžã§åé¡ãçºçããŠããããšã瀺ããŸãã
ãã®å¯èŠ³æž¬æ§ã¯ãããžãã¹é¢ä¿è ã«ãåãäžããŸããéçšããŒã ã補åããŒã ãããã©ã³ãã®å€æŽã«ãã£ãŠãŠã§ã«ã«ã ã¡ãŒã«ã®éä¿¡ã忢ããããšãææ¡ããã°ã顧客ã«åœ±é¿ãåºãåã«åé¡ãå ±åã§ããŸãã
å®è¡ã®æåŸ ãæç€ºçã«ã¢ãã«åããããã¹ããšç£èŠã®äž¡æ¹ã«æ¥ç¶ããããšããžã§ãã®æ€èšŒã¯äºåŸå¯Ÿå¿çã§ã¯ãªãäœç³»çã«ãªããŸãã
çç£çŸå Žã§ã®ãžã§ãã®åäœããå±å®³ãäžããããšãªãæ€èšŒãã
æ¬çªç°å¢ã§ã®ããã¯ã°ã©ãŠã³ããžã§ãã®åäœã芳å¯ã»æ€èšŒããããšã¯ãã¹ããŒãžã³ã°ç°å¢ã§ã¯é¡åšåããªãåé¡ãæ€åºããããã«äžå¯æ¬ ã§ããããããäžæ³šæãªæ€æ»ãäŸµå ¥çãªèšºæã¯ãããã©ãŒãã³ã¹ã®äœäžãããŒã¿ã®éè€ããããã¯éçšãªã¹ã¯ãæãå¯èœæ§ããããŸããæ¬çªã·ã¹ãã ã«ãããå®è¡ãã¹ã®æ€èšŒã«ã¯ã極ããŠç²Ÿå¯ãªäœæ¥ãæ±ããããŸããæŽåæ§ã確ä¿ãã顧客ããŒã¿ãä¿è·ããæå³ããªãå¯äœçšãåŒãèµ·ããå¯èœæ§ãæå°éã«æããæ¹æ³ã§å®æœããå¿ èŠããããŸãã
ããŒã ã¯ãååçã§ãäž»èŠãªã¯ãŒã¯ãããŒããåé¢ãããé«ã¹ã«ãŒãããã·ã¹ãã ã§ãå®å šãªæ¬çªç°å¢æ€èšŒææ³ãèšèšããå¿ èŠããããŸããç®æšã¯ãä¿¡é Œæ§ãæãªãããšãªãæŽå¯ãåŸãããšã§ãã
ãã°èšé²ãšè¿œè·¡ã«ããååçãªèгå¯
æ¬çªç°å¢ã«ãããåäœãæ€èšŒããæãä¿¡é Œæ§ã®é«ãæ¹æ³ã¯ãååçãªèгå¯ã§ããããã¯ããžã§ãã®æ±ºå®ãã€ã³ããå ¥åãé·ç§»ãæãããæ§é åãããäœè² è·ã®ãã¬ã¡ããªãåéããããšãæå³ããŸãããããã®ã·ã°ãã«ã¯å¯äœçšãšããŠçºããããŸããããžã§ãã®åäœã倿Žãããé å»¶ãåŒãèµ·ããããããããšã¯ãããŸããã
å ·äœçãªäŸãæããŸããšã以äžã®éãã§ãã
log_event("step_started", step="validate_customer", job_id=job.id)
log_event("decision_branch", condition="is_active_user", result=True)
log_event("action", performed="send_email", status="queued")
ãããã®è»œéãã°ã¯ãéäžã·ã¹ãã ã«ã¹ããªãŒãã³ã°ããããšã§ãå®è¡ãã¹ãåæ§ç¯ããæ³å®ãããã¹ããããå®è¡ããããã©ããã確èªã§ããŸãããŸãããžã§ãã®çš®é¡ããŠãŒã¶ãŒã»ã°ã¡ã³ããæé垯ããããã€ã¡ã³ãããŒãžã§ã³ããšã«ã€ã³ããã¯ã¹ä»ãã§ãããããå±¥æŽåæãååž°åæãšã®çžé¢åæãå¯èœã§ãã
éè² è·ãé²ãããããã°ã¯é©åã«èª¿æŽããããµã³ããªã³ã°ãããå¿ èŠããããŸããäŸãã°ã1ãžã§ãã«ã€ã1,000ãžã§ãã®ã¿å®å šãªãã¬ãŒã¹ãåéããéèŠãªã€ãã³ãã¯åžžã«ãã°ã«èšé²ãããšãã£ãå ·åã§ãã
忣ã·ã¹ãã ã§ã¯ã次ã®ãããªãã¬ãŒã¹ããããŒã x-trace-id or x-correlation-id ãã¹ãŠã®ãµãŒãã¹éåŒã³åºãã«ãããå«ããå¿
èŠããããŸããããã«ãããããŒã ã¯è€æ°ã®ãµãŒãã¹ããã¥ãŒã«ãŸããããããŒãã€ãªãåãããããšãã§ããè€æ°ã¹ããŒãžã®ãžã§ããå®å
šã«å¯èŠåã§ããŸãã
ã·ã£ããŠãžã§ããšãµã€ããã€ãµã€ãå®è¡
æ¬çªç°å¢ã§å®å šãªæ€èšŒãå®çŸããããäžã€ã®é«åºŠãªææ³ã¯ãã·ã£ããŠãžã§ãã®äœ¿çšã§ããã·ã£ããŠãžã§ãã¯ãå®éã®ãžã§ãã®ã¯ããŒã³çã§ãããåãå ¥åãåŠçããŸããããã®çµæã¯éèŠåºŠã®äœãã·ã³ã¯ã«åºåãããŸããã·ã£ããŠãžã§ãã¯ç¶æ ã®æŽæ°ãéç¥ã®éä¿¡ãã¢ã¯ã·ã§ã³ã®ããªã¬ãŒã«ã¯äœ¿çšããããåäœã®æ€èšŒã®ã¿ãç®çãšããŠããŸãã
ã·ã£ããŒãžã§ãã«ã¯æ¬¡ã®ãããªãã®ããããŸã:
- åãå ¥åã€ãã³ããèªã¿åã
- æŽæ°ãããããžãã¯ãŸãã¯ãžã§ãã³ãŒãã®ã«ããªã¢ããŒãžã§ã³ãå®è¡ãã
- æ¯èŒã®ããã«çµæãšæ±ºå®ãèšé²ãã
- åé¢ãããããŒã¿ã¹ãã¢ãŸãã¯ç£èŠã·ã¹ãã ã«åºåãæžã蟌ã
ããã«ãããéçºè ã¯ã·ã¹ãã ã®å®éã®åäœã«åœ±é¿ãäžããããšãªããçŸåšã®ãžã§ãå®è£ ãšæ¬¡äžä»£ãžã§ãå®è£ ã®çµæãæ¯èŒã§ããŸããã·ã£ããŠã€ã³ã°ã¯ãæžãæããããžãã¯ã®ç§»è¡ããŸãã¯ãã峿 Œãªæ€èšŒã«ãŒã«ã®å°å ¥æã«ç¹ã«åœ¹ç«ã¡ãŸãã
ããã©ãŒãã³ã¹ã®åé¡ãé²ããããã·ã£ããŠãžã§ãã¯ãªãŒãã¬ããªã«ã䜿çšããå詊è¡ãé¿ããäœãåªå 床ã§å®è¡ããå¿ èŠããããŸããã·ã£ããŠãžã§ãã¯ãæ¬çªç°å¢ã®ãã¥ãŒãšã¯åé¢ãããéåæã¯ãŒã«ãŒãä»ããŠå®è¡ã§ããŸãã
å€éšå¹æãèªçºããã«æ€èšŒãã
æ¬çªç°å¢ã®æ€èšŒã«ããã倧ããªæžå¿µäºé ã¯ãã¡ãŒã«ã®éè€ã誀ã£ãè«æ±ãããŒã¿ããŒã¹ã®ç Žæãšãã£ãäºæãã¬åœ±é¿ãåé¿ããããšã§ããããã軜æžããããã«ãæ€èšŒã·ã¹ãã ã¯å¯äœçšã®çºçãåé¿ããå¿ èŠã«å¿ããŠå¯äœçšãã¢ãã¯åããå¿ èŠããããŸãã
æŠç¥ã«ã¯ä»¥äžãå«ãŸããŸãã
- æžã蟌ã¿ãå€éšAPIåŒã³åºããã¹ããããããã©ã€ã©ã³ãã©ã°ã®äœ¿çš
- æ€èšŒäžã«ãµãŒãã¹ã¯ã©ã€ã¢ã³ãã®ãã¹ãããã«ãæ¿å ¥ãã
- éä¿¡ãªã¯ãšã¹ãããã£ããã£ãããããã£ã¹ãããããªã
- ãã¹ãŠã®ããŒã¿ã¹ãã¢ãèªã¿åãå°çšã¢ãŒãã§å®è¡
å ·äœçãªäŸãæããŸããšã以äžã®éãã§ãã
if DRY_RUN:
log.debug("Simulating payment execution")
else:
payment_service.charge(user)
ãã®ã¢ãããŒãã«ãããããŒã ã¯æ¡ä»¶åå²ãããŒã¿å€æŽãå«ãå®è¡ãã¹å šäœããå®äžçã«åœ±é¿ãäžããããšãªãæ€èšŒã§ããŸããå¯èŠ³æž¬æ§ãšçµã¿åãããããšã§ã倿Žäžããã³å€æŽåŸã®ãžã§ãã®æ£ç¢ºæ§ã«å¯Ÿããä¿¡é Œæ§ã確ä¿ã§ããŸãã
æ¬çªç°å¢ã§å®å šãªæ€èšŒã¯ãã¹ãã®ä»£æ¿ã§ã¯ãªããå®ç°å¢ã«ãããæ£ç¢ºæ§ãä¿èšŒããã»ãŒããã£ãããã§ããé©åã«å®è£ ããã°ãå€§èŠæš¡ç°å¢ã倿§ãªå ¥åããããã¯ç°å¢ã®ç¹ç°æ§ã«ãã£ãŠã®ã¿çºçããåé¡ã®ãã³ã°ããŒã«ãææã§ããŸãã
ãžã§ãèšèšã«ãããåçŸæ§ãšã¹ãçæ§ã®ç¢ºä¿
é«ã¹ã«ãŒãããã·ã¹ãã ã§ã¯ããããã¯ãŒã¯ã®åé¡ãã¿ã€ã ã¢ãŠããã·ã¹ãã ã¯ã©ãã·ã¥ãªã©ã«ãããããã¯ã°ã©ãŠã³ããžã§ãã倱æããããå詊è¡ãããããè€æ°åå®è¡ããããããããšããããŸããç¶¿å¯ãªèšèšãè¡ããªããšãã¢ã¯ã·ã§ã³ã®éè€ãç¶æ ã®ç Žæãäžæµãžã®åœ±é¿ã®äžæŽåã«ã€ãªããå¯èœæ§ããããŸããåçŸæ§ãšã¹ãçæ§ã¯ãããã¯ã°ã©ãŠã³ããžã§ããäœåºŠå®è¡ãããŠãäºæž¬ã©ããã«åäœããããšãä¿èšŒããåºæ¬ååã§ãã
ç¹°ãè¿ãå¯èœãªãžã§ãã¯ãåãå ¥åã§è€æ°åå®è¡ããå ŽåãåãçµæãçæããŸããåªçãªãžã§ãã¯ãæåã®æåããå®è¡ä»¥éãç¹°ãè¿ãå®è¡ã«ãã£ãŠæçµç¶æ ã倿Žãããªãããšãä¿èšŒããŸãããããã®2ã€ã®ç¹æ§ã«ãããæå³ããªãå¯äœçšã®ãªã¹ã¯ã軜æžãããé害çºçæã®ãªã«ããªãç°¡çŽ åãããŸãã
éåæã·ã¹ãã ã«ãããŠåªçæ§ãéèŠãªçç±
éåæã·ã¹ãã ã¯ãæ¬è³ªçã«å詊è¡ãéšåçãªå€±æãçºçããããåŸåããããŸãããžã§ãã¯å®äºãããšããŠãã¿ã€ã ã¢ãŠãããããè€æ°åã®è©Šè¡ãçµãŠããããæåãããããããšããããŸãããã®ãžã§ããããŒã¿ããŒã¹ãžã®æžã蟌ã¿ãè«æ±æžã®éä¿¡ãAPIãšã®ããåããªã©ãè¡ãå Žåãåªçæ§ãæ¬ åŠããŠãããšãããŒã¿ãè²¡åæ å ±ã«é倧ãªäžæŽåãçããå¯èœæ§ããããŸãã
çºé確èªãéä¿¡ãããžã§ããèããŠã¿ãŸããããå詊è¡ãããšãå®å šå¯ŸçãæœãããŠããªãéããè€æ°ã®ã¡ãŒã«ãéä¿¡ãããããè€æ°ã®çºéãèšé²ããããããå¯èœæ§ããããŸãããžã§ããã¹ãçã«ããããšã§ãéçºè ã¯ãžã§ããäœåºŠå®è¡ãããŠãã1ã€ã®ç¢ºèªã ããåŠçãããããšãä¿èšŒã§ããŸãã
ããã¯ããžã§ããé£éããŠããããäžæµã®ã€ãã³ããçºè¡ãããããå Žåã«ç¹ã«éèŠã«ãªããŸããåªçæ§ããªããã°ãäžæµãžã§ãã®1åã®å詊è¡ã§è€æ°ã®äžæµã¿ã¹ã¯ãããªã¬ãŒããããããããåãå ¥åãåŠçããããšã«ãªããçµæãšããŠéè€ã倧éã«çºçããŸãã
åªçæ§ã¯ãšã©ãŒåŠçãšç£èŠãç°¡çŽ åããŸãããžã§ããå®å šã«å詊è¡ã§ããå Žåãã¢ã©ãŒãã¯ååå®è¡ãšåå®è¡ãåºå¥ããå¿ èŠããªããªããŸãããªã«ããªãã¹ã«ãããŠãäœæ¥ããå ã«æ»ãããŸãã¯ã¹ãããããããã®è€éãªæ¡ä»¶ä»ãããžãã¯ãèæ ®ããå¿ èŠããªããªããããã·ã¹ãã ã®èé害æ§ãåäžããŸãã
ãžã§ãã¹ããããç¹°ãè¿ãå®è¡ã§ããããã«ãããã¯ããã¯
ç¹°ãè¿ãå¯èœãªãžã§ããäœæããã«ã¯ãå¯äœçšãåé¢ããæç€ºçãªãã§ãã¯ãã€ã³ãã䜿çšããåŠçãé²ããåã«ã·ã¹ãã ç¶æ ãæ€èšŒããå¿ èŠããããŸãã广çãªææ³ãšããŠã¯ã以äžã®ãããªãã®ããããŸãã
- ã¹ãçããŒã䜿çšãã: åå®è¡ãŠãããã®ããã·ã¥ãŸãã¯UUIDãä¿åããŸããæžã蟌ã¿ãŸãã¯å€éšã¢ã¯ã·ã§ã³ãå®è¡ããåã«ãããŒãæ¢ã«åŠçãããŠãããã©ããã確èªããŸãã
if is_processed(job_id):
return
mark_processed(job_id)
- ãã§ãã¯ãã€ã³ã: ãžã§ãã®å段éã§é²è¡ç¶æ³ãä¿æããŸãããžã§ããéäžã§ã¯ã©ãã·ã¥ããå ŽåãæåããããçŽãã®ã§ã¯ãªããååæ£åžžå®è¡æã®ç¶æ ããåéã§ããŸããããã¯ãé·æéå®è¡ããããžã§ããè€æ°ã®ã¹ãããã§æ§æããããžã§ãã§ç¹ã«äŸ¿å©ã§ãã
- ã¹ããŒãã¬ã¹ã¹ããã: ãžã§ãããžãã¯ãèšèšããå¯äœçšãªãã¹ããããåå®è¡ã§ããããã«ããŸããäŸãã°ãå ¥åãèªã¿åã£ãŠçµæãçæããã ãã§å ±æç¶æ ã«æžã蟌ãŸãªã倿ã¹ãããã¯ãå®å šã«ç¹°ãè¿ãããšãã§ããŸãã
- éæ±ºå®è«çãªå ¥åãé¿ãã: çŸåšã®ã¿ã€ã ã¹ã¿ã³ããã©ã³ãã å€ããŸãã¯æ®çºæ§ã®å€éšããŒã¿ã«äŸåãããžã§ãã¯ãéå§æã«ãããã®å ¥åã®ã¹ãããã·ã§ãããäœæããå¿ èŠããããŸããããã«ãããå詊è¡éã®äžè²«æ§ã確ä¿ãããŸãã
- å¯äœçšãã«ãã»ã«åãã: ç¶æ ã倿Žãããã¹ãŠã®æäœããçŸåšã®ç¶æ ãæå¹ã§ããããšã確èªããæ¡ä»¶æã§å²ã¿ãŸããããã«ãããã¢ã¯ã·ã§ã³ã®äžæžããéè€ãåé¿ã§ããŸãã
if not email_already_sent(user.id):
send_email(user)
åªçæ§ãèæ ®ããèšèšã«ã¯å€å°ã®ãªãŒããŒããããçããå¯èœæ§ããããŸãããä¿¡é Œæ§ããããã°æ§ãã¹ã±ãŒã©ããªãã£ãšãã£ãé·æçãªã¡ãªããã¯ããã®ã³ã¹ããã¯ããã«äžåããŸããåªçæ§ã¯ããžã§ãããžãã¯ãåçºçãªãã¹ããšãã©ãŒãã¢ãã«ãããç¶¿å¯ã§è²¬ä»»ããããã»ã¹ãžãšç§»è¡ãããŸãã
äœ¿ãæ¹ SMART TS XL ãžã§ãå®è¡ãã¹ãã¢ãã«åããã³æ€èšŒãã
ããã¯ã°ã©ãŠã³ããžã§ãã®ããžãã¯ãè€éã«ãªãã«ã€ããŠãå®è¡ãã¹ãæéã®çµéãšãšãã«ã©ã®ããã«å€åããããææ¡ããããšããŸããŸãå°é£ã«ãªããŸãããã°ããã¬ãŒã¹ãã¡ããªã¯ã¹ã¯åœ¹ç«ã¡ãŸãããæåã§çžé¢é¢ä¿ãææ¡ããå¿ èŠããããæ±ºå®æšãå¶åŸ¡ãããŒã®å šäœåãææ¡ã§ããªãããšããããããŸãã SMART TS XL ã³ãŒãããžã§ã ãã¬ãŒã¹ãã©ã³ã¿ã€ã åäœãèŠèŠåãããã¢ãã«ã«å€æããããšã§ããã®ã®ã£ãããåããããã¯ã°ã©ãŠã³ã ãžã§ããäœãå®è¡ããŠããããã©ã®ããã«éžè±ããŠããããã©ãã§åé¡ãçºçããŠããããæããã«ããŸãã
SMART TS XL éçºããŒã ã¯ãããã¯ãšã³ãã®ã¯ãŒã¯ãããŒãšéåæã·ã¹ãã ãæ£ç¢ºã«åæã§ããŸãããµãŒãã¹ãšããã¯ã°ã©ãŠã³ããžã§ãã®å®éã®å®è¡ããžãã¯ãããæ§é å³ãšåäœå³ãäœæããŸãããããã®å³ã¯æåã§æç»ãããã®ã§ã¯ãªãããœãŒã¹ã³ãŒããå®è¡ãã¬ãŒã¹ããŸãã¯ãã¬ã¡ããªã¹ããªãŒã ããçŽæ¥çæãããŸãã
ã³ãŒãããã€ã³ã¿ã©ã¯ãã£ããªå®è¡å³ãž
SMART TS XL ãœãŒã¹ãã¡ã€ã«ãŸãã¯èŠ³æž¬ãããå®è¡ãã¿ãŒã³ãåã蟌ã¿ãããã²ãŒãå¯èœãªãã€ã¢ã°ã©ã ã«å€æããŸããããã¯ã°ã©ãŠã³ããžã§ãã®å Žåãããã¯ãã¹ãŠã®æ¡ä»¶ãã¹ãã«ãŒãããŸãã¯APIã€ã³ã¿ã©ã¯ã·ã§ã³ãèŠèŠçãªããŒãã«å€æããããšãæå³ããŸãããããŒå šäœã¯è¿œè·¡å¯èœãªå®è¡ããªãŒãšããŠè¡šçŸãããæéçµéã«æ²¿ã£ãŠã¬ãã¥ãŒã泚éä»ããæ¯èŒãè¡ãããšãã§ããŸãã
ãžã§ãã·ã¹ãã ãšçµ±åãããšã SMART TS XL ãµããŒãïŒ
- å詊è¡åäœãšçµäºæ¡ä»¶ã®èŠèŠå
- æ¡ä»¶ä»ããã€ããŒããŸãã¯æ©èœãã©ã°ã«ãã£ãŠçºçããåå²ããžãã¯ã®ãããã³ã°
- ã¹ããããããã¹ããããå°éã§ããªãã³ãŒããããã¯ããã£ããã£ãã
- å®éã®å®è¡ãšæå³ãããã¹ãæ¯èŒããŠç°åžžãæµ®ã圫ãã«ãã
ããããå¯èŠåã¯ãããã¥ã¡ã³ããæ¬ èœããŠããããããžãã¯ãæç¶ãåã³ãŒãã«æ·±ãåã蟌ãŸããŠããã¬ã¬ã·ãŒãžã§ãã«ç¹ã«åœ¹ç«ã¡ãŸãããšã³ãžãã¢ã¯æ°åè¡ãã®ã³ãŒããèªãŸãªããŠãããšããžã±ãŒã¹ãçè§£ã§ããŸãã
ãžã§ããã¬ãŒã¹ã®ã©ã³ã¿ã€ã æ€èšŒ
SMART TS XL éçåæä»¥äžã®æ©èœãæäŸããŸããã©ã€ããžã§ãå®è¡ãäºæž¬ã¢ãã«ãšç¶ç¶çã«æ¯èŒããŸããåãžã§ãå®è¡ã¯ããã¹ã®é©åæ§ãã¿ã€ãã³ã°ãã¹ãããã®æŽåæ§ã«ã€ããŠè©äŸ¡ãããŸããæ±ºå®ã¹ãããã®æ¬ èœãäºæããªãçµäºãªã©ã®éžè±ãæ€åºããããšããã©ã°ãä»ãããããããã€ã¡ã³ããŸãã¯ç°å¢ã³ã³ããã¹ããšçžé¢ä»ããããŸãã
ããã«ãããããŒã ã¯ä»¥äžãæ€åºã§ããŸãã
- äžæ£ãªãã€ããŒãã®ããã«é»ã£ãŠçµäºãããžã§ã
- è² è·ãããã£ãç¶æ ã§äºæããããªã¬ãŒããããã©ã³ã
- å®çšŒåããŒã¿ã«ã®ã¿çŸãããã³ã°ããŒã«ãã¹
Since SMART TS XL å±¥æŽãšãªã¢ã«ã¿ã€ã ã®äž¡æ¹ã®å®è¡ãã¹ãä¿åããããšã§ããžã§ãããŒãžã§ã³éã®å·®ååæãå¯èœã«ãªããŸãããšã³ãžãã¢ã¯ãæ°ãããããã€ã¡ã³ãã«ãã£ãŠå¶åŸ¡ãããŒãã©ã®ããã«å€åããå°éäžèœãªåå²ãååž°ãçºçããŠããªããã確èªã§ããŸãã
äºåŸæ€èšŒãšã³ã³ãã©ã€ã¢ã³ã¹ç£æ»ã®ãµããŒã
äºä»¶ãèµ·ãããšã SMART TS XL å®è¡å±¥æŽã¯ãã¬ãã¥ãŒãšèª¬æãå¯èœãªåœ¢åŒã§æäŸãããŸããäºåŸæ€èšŒã§ã¯ããšã³ãžãã¢ã¯ãžã§ããããŒãåçããã©ã®åå²ãå®è¡ãããããã©ã®ããŒã¿ãåŠçããããããããŠããžãã¯ãæ³å®ãšç°ãªãç®æãæ£ç¢ºã«ç¹å®ã§ããŸãã
ããã«ãããè¿ éãªæ ¹æ¬åå åæããµããŒããããå°æ¥ã®åçºãé²ãããšãã§ããŸãã
èŠå¶ãããç°å¢ãå¥çŽäžã®ã¯ãŒã¯ãããŒã®å Žåã SMART TS XLã®å³ãšãã°ã¯ã³ã³ãã©ã€ã¢ã³ã¹ã®èšŒæ ãšããŠæ©èœããŸãããžã§ããã¹ããšã¯ã¹ããŒããæ³šéä»ããã¬ãã¥ãŒããããšã§ãå¿ èŠãªãã¹ãŠã®ã¢ã¯ã·ã§ã³ãå®è¡ãããããšããã©ãŒã«ããã¯ãæ£ããæ©èœããããšãå€éšã·ã¹ãã ãèšèšã©ããã«äœåããããšã確èªã§ããŸãã
ç¶ç¶çãªä¿¡é Œæ§ã®ããã® CI/CD ãžã®çµ±å
SMART TS XL ãã«ããã€ãã©ã€ã³ã«çµ±åããããšã§ããžã§ãã³ãŒãã®æ°ããããŒãžã§ã³ããããã€ããåã«å®è¡ãã¹ã®äžè²«æ§ãæ€èšŒã§ããŸããæ°ããçæããããããŒãã€ã¢ã°ã©ã ã以åã«æ¿èªãããã¢ãã«ãšæ¯èŒããæ§é äžã®å·®ç°ããã©ã°ä»ãããŸãã
ããã«ãããæ¬¡ã®ããšãå¯èœã«ãªããŸãã
- ããžãã¯ååž°ã®æ©ææ€åº
- æªãã¹ãã®ãã¹ãæ¬çªç°å¢ã«å°éããã®ãé²ã
- ãžã§ãæ§é æšæºã®åŒ·å¶ïŒäŸïŒåžžã«ç£æ»ãã°ãåºåããããŸãã¯æçµåŠçæé ãã¹ãããããªãïŒ
åæãžã§ããã¹ããã·ã£ããŒç°å¢ãšçµã¿åãããããšã§ã SMART TS XL èšèšãå®è£ ãå®è¡æã®åäœã®éã®ã«ãŒããéããŸãã
å®è¡ã¢ãã«ã䜿çšããäºåŸæ€èšŒãã³ã³ãã©ã€ã¢ã³ã¹ãç¥è移転
çŸä»£ã®ãšã³ãžãã¢ãªã³ã°çµç¹ã§ã¯ãããã¯ã°ã©ãŠã³ããžã§ããããã·ã§ã³ã¯ãªãã£ã«ã«ã«ãªãããšãå€ããAPIãããã³ããšã³ãã³ã³ããŒãã³ãã»ã©ã®æ³šæãæãããããšã¯ãããŸããããããã®éåæã¬ã€ã€ãŒã§é害ãçºçãããšãããŒã ã¯é·ãåŸ©æ§æéãšãäœãåé¡ã ã£ãã®ãã®äžç¢ºå®æ§ã«çŽé¢ããŸããããã«æªãããšã«ããžã§ãã®åäœã«é¢ããç¥èã¯ææžåãããŠããªãã£ããããµã€ãåãããŠãããããããšããããããŸããå®è¡ãã¹ãæç¢ºã«ã¢ãã«åããããšã§ãããŒã ã¯äºåŸæ€èšŒã®å®æœæ¹æ³ãæ¹åããã³ã³ãã©ã€ã¢ã³ã¹èŠä»¶ãæºãããããŒã ã®å¢çãè¶ããŠãã¡ã€ã³ç¥èãå¹ççã«äŒéã§ããããã«ãªããŸãã
å³ã远跡å¯èœãªã¢ãã«ã¯åãªãéçºããŒã«ã§ã¯ãããŸãããããŒã ãã³ã³ããã¹ãããããŠæéãè¶ ããã³ãã¥ãã±ãŒã·ã§ã³ãå®çŸããææç©ã§ããç®ã«èŠããªãããžãã¯ãå¯èŠåãããã®ã§ãããä¿¡é Œæ§ãä¿¡é Œæ§ããããã¯ã»ãã¥ãªãã£ã屿©ã«çããŠããç¶æ³ã§ã¯äžå¯æ¬ ã§ãã
å®è¡å¯èœãããã«ããäºåŸåæã®åŒ·å
æ¬çªç°å¢ã§ããã¯ã°ã©ãŠã³ããžã§ãã誀åäœããå Žåãã€ã³ã·ãã³ã察å¿ã¯å€ãã®å Žåããã°ã®ç¢ºèªãšæšæž¬ã®é£ç¶ããå§ãŸããŸãããžã§ãã¯ã©ã®ãããªãã¹ããã©ã£ãã®ãïŒæ³å®éãã®åäœã ã£ãã®ãïŒãã©ãŒã«ããã¯ã®åå ã¯ã©ã®ãããªç¶æ³ã ã£ãã®ãïŒå®è¡ããžãã¯ãè€æ°ã®é¢æ°ããµãŒãã¹ã«åæ£ããŠããå Žåãããããçåã«çããã®ã¯å°é£ã§ãã
å®è¡ã¢ãã«ãå°å ¥ããããšã§ã察å¿è ã¯ãžã§ãã®æ³å®ãããå¶åŸ¡ãããŒãå³åº§ã«ç¹å®ã§ããŸããã©ã®ã¹ããããå®è¡ãããã¹ãã ã£ãããæ£ç¢ºã«è¿œè·¡ãããšã³ããªãã€ã³ããšçµäºãã€ã³ããç¹å®ãã倱æããå®è¡ã®ãã¬ã¡ããªãšæ¯èŒããããšãã§ããŸãã
äŸãã°ããªã³ã³ã·ãªãšãŒã·ã§ã³ãžã§ããæ€èšŒã¹ããããã¹ãããããå Žåãã¢ãã«ã¯ããã®ãã©ã³ããæ¡ä»¶ä»ãã§ãã£ããã誀ã£ãŠã¹ãããããããããããã¯ãããã€ãããããŒãžã§ã³ã§å®å šã«çç¥ããããã瀺ããŸããããã«ãããæšæž¬ã蚌æ ã«å€ãããŸãã
å®è¡ã¢ãã«ã¯ã远å ã®å¯èŠ³æž¬æ§ãå¿ èŠãªç®æã®ç¹å®ã«ã圹ç«ã¡ãŸããäºåŸæ€èšŒã«ãã£ãŠããã€ã¢ã°ã©ã å ã®ãã¹ã®æ¬ èœãéèŠãªãã©ã³ãã«ãããã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ã®äžè¶³ãæããã«ãªã£ãå Žåããã®ãã£ãŒãããã¯ããžã§ãèšèšã«åæ ãããå°æ¥ã®å埩åãé«ããããšãã§ããŸãã
è¡å远跡ã«ããã³ã³ãã©ã€ã¢ã³ã¹ã®ãµããŒã
ããã¯ã°ã©ãŠã³ããžã§ãã«äŸåããå€ãã®ã·ã¹ãã ã¯ãèŠå¶ãå¥çŽäžã®ã³ã³ãã©ã€ã¢ã³ã¹ã®å¯Ÿè±¡ãšãªããŸãããããã®ãžã§ãã¯ãéèååŒãç£æ»ãã°ãã¢ã¯ã»ã¹å¶åŸ¡ã®äŒæã顧客ãžã®éç¥ãªã©ãåŠçããå ŽåããããŸããç£æ»ã§ã¯ããããã®ãžã§ããæåŸ ã©ããã«å®è¡ãããããšã蚌æããããšãæ±ããããããšããããããŸãã
ãžã§ãã®æåãèŠèŠçã«è¡šçŸããã¢ãã«ãç¶æããå®è¡ãã¬ãŒã¹ã®å±¥æŽãä¿åããããšã§ãããŒã ã¯æ¡ä»¶ãæºãããããšãã«å¿ èŠãªãã¹ãŠã®ãã¹ãå®è¡ãããããšã蚌æã§ããŸãããããã®ã¢ãã«ã¯ãšã¯ã¹ããŒããã¿ã€ã ã¹ã¿ã³ãã®ä»äžããããã€ã¡ã³ãå±¥æŽãžã®ãªã³ã¯ãå¯èœã§ãã
äŸãã°ïŒ
- èŠå¶åœå±ã¯ã倱æãããã°ã€ã³è©Šè¡ãã¹ãŠãé©åãªãã°èšé²ã¯ãŒã¯ãããŒãããªã¬ãŒãããšãã蚌æ ãèŠæ±ããå¯èœæ§ãããã
- ããŒãããŒã¯ãè«æ±åã«ãã¹ãŠã®è«æ±ãžã§ãã顧客ã®ãã©ã³éå±€ãæ€èšŒããŠããããšãä¿èšŒããå¿ èŠãããå ŽåããããŸãã
- å éšç£æ»ã§ã¯ããªãã·ã§ã³ã®ãã©ãŒã«ããã¯ã¹ããããã¹ããããããžã§ãã®æ°ãšãã®çç±ã«é¢ããã¬ããŒããå¿ èŠã«ãªãå ŽåããããŸãã
è¡å远跡æ©èœã«ãããçã®ãã°ããœãŒã¹ã³ãŒãããããžãã¯ãåæ§ç¯ããããšãªãããããã®è³ªåã«çããããšãã§ããŸããããã¯ãæ€çŽ¢å¯èœã§èª¬æå¯èœããããŠæ°žç¶çãªè³ç£ãšãªããŸãã
ããŒã ã圹å²ãè¶ ããç¥è移転ã®å®çŸ
ããŒã ã®æ¡å€§ãåç·šã«äŒŽãããžã§ãèšèšã«é¢ããç¥èã¯äœäžããåŸåããããŸãããšã³ãžãã¢ã®éè·ããã¡ã€ã³ãšãã¹ããŒãã®äº€ä»£ããããŠãžã§ãããžãã¯ãã³ãŒãã瀟å ç¥èã®äžã«åããããŸãŸã«ãªããšãã£ãç¶æ³ã§ãããã®çµæããªã³ããŒãã£ã³ã°ã«é·ãæéãããããåæã®äžè²«æ§ã倱ãããã¬ã¬ã·ãŒã¯ãŒã¯ãããŒã®æŽæ°æã«ãªã¹ã¯ãçããŸãã
å®è¡ã¢ãã«ã¯ãããããç¥èã®ã£ãããåããã®ã«åœ¹ç«ã¡ãŸããæ°ããããŒã ã¡ã³ããŒã§ãããžã§ãã®ãã€ã¢ã°ã©ã ãèŠãã ãã§ãéåžžãªãäœæéããããã³ãŒãã¬ãã¥ãŒãæ°åã§çè§£ã§ããŸããã¢ãã«ã®èŠèŠçãªæ§è³ªã«ããããããã¯ããããŒãžã£ãŒãQAãšã³ãžãã¢ããµããŒãã¹ã¿ãããªã©ãéçºè 以å€ã®æ åœè ãããžã§ããäœãå®è¡ããããŸããŸãªã·ããªãªã§ã©ã®ããã«åäœããããçè§£ã§ããŸãã
éšé暪æåããŒã ã§ã¯ãããã«ããããžã§ãã®å°éå®¶ããžã®äŸåã軜æžãããéåæããžãã¯ãå ±æã·ã¹ãã çè§£ã®äžéšã«ãªããŸãã
å®è¡ã¢ãã«ã¯ãæä»£é ãã«ãªããªãããã¥ã¡ã³ããšããŠãæ©èœããŸããWikiãã³ã¡ã³ãã¯å€ããªãåŸåããããŸããããœãŒã¹ã³ãŒãããã¬ãŒã¹ããŒã¿ããçæãããã¢ãã«ã¯ãã·ã¹ãã èªäœãšãšãã«é²åããŸãã
ããã¯ã°ã©ãŠã³ããžã§ãã®ä¿¡é Œæ§ã®ã®ã£ãããåãã
ããã¯ã°ã©ãŠã³ããžã§ãã¯ãæ°ãåããªãã»ã©ã®ããžãã¹ã¯ãªãã£ã«ã«ãªã¯ãŒã¯ãããŒãæ¯ããåååã§ãããã€ã³ã¿ã©ã¯ãã£ãã·ã¹ãã ã®ãããªç£èŠãå®å šå¯Ÿçãè¬ããããã«åäœããããšãå€ãããŸãããããã®ãžã§ãããµã€ã¬ã³ãã«å€±æããããäºæããªãå®è¡ãã¹ããšã£ãããããšããã®åœ±é¿ã®æ€åºã¯å°é£ã«ãªãã远跡ã¯ããã«å°é£ã«ãªããŸããé ããåå²ãã¹ãããã®çç¥ãå¶åŸ¡ãããŠããªãå詊è¡ã¯ãããŒã¿ã®æŽåæ§ã顧客ã®ä¿¡é ŒããããŠã·ã¹ãã ã®å®å®æ§ãæãªããªã¹ã¯ããããããŸãã
ãããã®ã®ã£ãããåããã«ã¯ãäºåŸå¯Ÿå¿çãªãããã°ã ãã§ã¯äžååã§ããããŒã ã«ã¯ããžã§ãããžãã¯ããªã¢ã«ã¿ã€ã ã§ãè€æ°ã®ç°å¢ã«ããã£ãŠããããŠæéã®çµéãšãšãã«ã©ã®ããã«å±éãããããçè§£ããããã®ãããã¢ã¯ãã£ããªããŒã«ãšæŠç¥ãå¿ èŠã§ããããã«ã¯ãå®è¡ãã¹ã®ã¢ããªã³ã°ã倿ããžãã¯ã®ãã¬ãŒã¹ãå®è¡æã®åäœã®æ€èšŒããããŠå¯äœçšãæ³å®ãããã¿ã€ãã³ã°ãšå Žæã§ã®ã¿çºçããããšã®ä¿èšŒãå«ãŸããŸãã
ãããã®ã¯ãŒã¯ãããŒãå¯èŠåããããšã§ãä¿¡é Œæ§ãåäžããã ãã§ãªãããªã³ããŒãã£ã³ã°ã®è¿ éåãã³ã³ãã©ã€ã¢ã³ã¹ã®éµå®ããšã³ãžãã¢ãªã³ã°ããŒã ã®èªç¥è² è·ã®è»œæžã«ãã€ãªãããŸããå®è¡ãã¹ã®ã¢ããªã³ã°ã¯ãéçºè ããã¹ã¿ãŒããããŠé¢ä¿è éã®å ±éèšèªãšãªããããã¯ã°ã©ãŠã³ããžã§ããäžéæãªããã»ã¹ããéææ§ã®é«ãç£æ»å¯èœãªãããŒãžãšå€é©ããŸãã
ããã¯ã°ã©ãŠã³ããžã§ãã®ä¿¡é Œæ§ããåãªãéçšäžã®åŸä»ãã§ã¯ãªããèšèšäžã®èŠåŸãšããŠæããããšã§ãããŒã ã¯æçæ§ãšå埩åãåããã¹ã±ãŒã©ãã«ãªã·ã¹ãã ãæ§ç¯ã§ããŸããéåæã¯ãŒã¯ãããŒã®æåã芳å¯å¯èœã§ãåçŸå¯èœã§ãããããžãã¹ã€ã³ãã³ããšæŽåããŠãããšãããã®ä¿¡é Œæ§ã¯é«ãŸããŸãã
ãããããŠã³ããŒãå¯èœãªåœ¢åŒã§ããã±ãŒãžåããããã¡ã¿ããŒã¿ãçæããããé åžçšã®ã³ã³ãã³ããæºåããããããå Žåã¯ãç¥ãããã ããã