550d86c1 by 周伟奇

fix bug

1 parent 6934c592
...@@ -71,6 +71,7 @@ class Command(BaseCommand, LoggerMixin): ...@@ -71,6 +71,7 @@ class Command(BaseCommand, LoggerMixin):
71 self.cronjob_log.info('{0} [get_doc_info] [queue empty]'.format(self.log_base)) 71 self.cronjob_log.info('{0} [get_doc_info] [queue empty]'.format(self.log_base))
72 return None, None, None 72 return None, None, None
73 73
74 self.cronjob_log.info('{0} [get_doc_info success] [task={1}] [is_priority={2}]'.format(self.log_base, task_str, is_priority))
74 doc, business_type = self.get_doc_object(task_str) 75 doc, business_type = self.get_doc_object(task_str)
75 76
76 if doc is None: 77 if doc is None:
...@@ -421,6 +422,7 @@ class Command(BaseCommand, LoggerMixin): ...@@ -421,6 +422,7 @@ class Command(BaseCommand, LoggerMixin):
421 time.sleep(self.sleep_time_img_get) 422 time.sleep(self.sleep_time_img_get)
422 continue 423 continue
423 else: 424 else:
425 try:
424 self.cronjob_log.info('{0} [img_2_ocr_1] [get img] [img_path={1}]'.format(self.log_base, img_path)) 426 self.cronjob_log.info('{0} [img_2_ocr_1] [get img] [img_path={1}]'.format(self.log_base, img_path))
425 427
426 for times in range(consts.RETRY_TIMES): 428 for times in range(consts.RETRY_TIMES):
...@@ -451,6 +453,9 @@ class Command(BaseCommand, LoggerMixin): ...@@ -451,6 +453,9 @@ class Command(BaseCommand, LoggerMixin):
451 ocr_1_res = {} 453 ocr_1_res = {}
452 self.cronjob_log.warn('{0} [ocr_1 failed] [img_path={1}]'.format(self.log_base, img_path)) 454 self.cronjob_log.warn('{0} [ocr_1 failed] [img_path={1}]'.format(self.log_base, img_path))
453 # continue 455 # continue
456 except Exception as e:
457 self.cronjob_log.error('{0} [process error (ocr fetch)] [img_path={1}] [error={2}]'.format(
458 self.log_base, img_path, traceback.format_exc()))
454 459
455 try: 460 try:
456 del json_data_1 461 del json_data_1
...@@ -470,7 +475,7 @@ class Command(BaseCommand, LoggerMixin): ...@@ -470,7 +475,7 @@ class Command(BaseCommand, LoggerMixin):
470 else: 475 else:
471 todo_count_dict[task_str] = todo_count - 1 476 todo_count_dict[task_str] = todo_count - 1
472 except Exception as e: 477 except Exception as e:
473 self.cronjob_log.error('{0} [process failed (store ocr res)] [img_path={1}] [error={2}]'.format( 478 self.cronjob_log.error('{0} [process error (store ocr res)] [img_path={1}] [error={2}]'.format(
474 self.log_base, img_path, traceback.format_exc())) 479 self.log_base, img_path, traceback.format_exc()))
475 480
476 def res_2_wb(self, res_dict, finish_queue, lock): 481 def res_2_wb(self, res_dict, finish_queue, lock):
...@@ -482,12 +487,12 @@ class Command(BaseCommand, LoggerMixin): ...@@ -482,12 +487,12 @@ class Command(BaseCommand, LoggerMixin):
482 time.sleep(self.sleep_time_task_get) 487 time.sleep(self.sleep_time_task_get)
483 continue 488 continue
484 else: 489 else:
490 try:
485 self.cronjob_log.info('{0} [res_2_wb] [get task] [task={1}]'.format(self.log_base, task_str)) 491 self.cronjob_log.info('{0} [res_2_wb] [get task] [task={1}]'.format(self.log_base, task_str))
486 ocr_1_res = res_dict.get(task_str, {}) 492 ocr_1_res = res_dict.get(task_str, {})
487 # self.cronjob_log.info('{0} [res_2_wb] [get task res] [task={1}]'.format( 493 # self.cronjob_log.info('{0} [res_2_wb] [get task res] [task={1}]'.format(
488 # self.log_base, task_str)) 494 # self.log_base, task_str))
489 495
490 try:
491 # 4.OCR结果并且构建excel文件 496 # 4.OCR结果并且构建excel文件
492 bs_summary = {} 497 bs_summary = {}
493 license_summary = {} 498 license_summary = {}
...@@ -605,6 +610,7 @@ class Command(BaseCommand, LoggerMixin): ...@@ -605,6 +610,7 @@ class Command(BaseCommand, LoggerMixin):
605 count_list = wb.rebuild(merged_bs_summary, license_summary, res_list, doc.document_scheme) 610 count_list = wb.rebuild(merged_bs_summary, license_summary, res_list, doc.document_scheme)
606 wb.save(excel_path) 611 wb.save(excel_path)
607 except Exception as e: 612 except Exception as e:
613 try:
608 with lock: 614 with lock:
609 if task_str in res_dict: 615 if task_str in res_dict:
610 del res_dict[task_str] 616 del res_dict[task_str]
...@@ -613,6 +619,10 @@ class Command(BaseCommand, LoggerMixin): ...@@ -613,6 +619,10 @@ class Command(BaseCommand, LoggerMixin):
613 doc.save() 619 doc.save()
614 self.cronjob_log.error('{0} [process failed (res to wb)] [task={1}] [error={2}]'.format( 620 self.cronjob_log.error('{0} [process failed (res to wb)] [task={1}] [error={2}]'.format(
615 self.log_base, task_str, traceback.format_exc())) 621 self.log_base, task_str, traceback.format_exc()))
622 except Exception as e:
623 self.cronjob_log.error('{0} [process error (wb end)] [task={1}] [error={2}]'.format(
624 self.log_base, task_str, traceback.format_exc()))
625
616 try: 626 try:
617 doc_data_path = os.path.join(self.data_dir, business_type, consts.TMP_DIR_NAME, str(doc.id)) 627 doc_data_path = os.path.join(self.data_dir, business_type, consts.TMP_DIR_NAME, str(doc.id))
618 img_save_path = os.path.join(doc_data_path, 'img') 628 img_save_path = os.path.join(doc_data_path, 'img')
...@@ -620,7 +630,7 @@ class Command(BaseCommand, LoggerMixin): ...@@ -620,7 +630,7 @@ class Command(BaseCommand, LoggerMixin):
620 pdf_path = os.path.join(doc_data_path, '{0}.pdf'.format(doc.id)) 630 pdf_path = os.path.join(doc_data_path, '{0}.pdf'.format(doc.id))
621 os.remove(pdf_path) 631 os.remove(pdf_path)
622 except Exception as e: 632 except Exception as e:
623 self.cronjob_log.error('{0} [file remove failed] [task={1}] [error={2}]'.format( 633 self.cronjob_log.error('{0} [process error (file remove 1)] [task={1}] [error={2}]'.format(
624 self.log_base, task_str, traceback.format_exc())) 634 self.log_base, task_str, traceback.format_exc()))
625 else: 635 else:
626 try: 636 try:
...@@ -631,7 +641,7 @@ class Command(BaseCommand, LoggerMixin): ...@@ -631,7 +641,7 @@ class Command(BaseCommand, LoggerMixin):
631 # os.remove(pdf_path) 641 # os.remove(pdf_path)
632 # os.remove(src_excel_path) 642 # os.remove(src_excel_path)
633 except Exception as e: 643 except Exception as e:
634 self.cronjob_log.error('{0} [file remove failed] [task={1}] [error={2}]'.format( 644 self.cronjob_log.error('{0} [process error (file remove 2)] [task={1}] [error={2}]'.format(
635 self.log_base, task_str, traceback.format_exc())) 645 self.log_base, task_str, traceback.format_exc()))
636 try: 646 try:
637 # 5.上传至EDMS 647 # 5.上传至EDMS
...@@ -648,6 +658,7 @@ class Command(BaseCommand, LoggerMixin): ...@@ -648,6 +658,7 @@ class Command(BaseCommand, LoggerMixin):
648 else: 658 else:
649 raise EDMSException(edms_exc) 659 raise EDMSException(edms_exc)
650 except Exception as e: 660 except Exception as e:
661 try:
651 doc.status = DocStatus.UPLOAD_FAILED.value 662 doc.status = DocStatus.UPLOAD_FAILED.value
652 doc.end_time = timezone.now() 663 doc.end_time = timezone.now()
653 doc.duration = min((doc.end_time - doc.start_time).seconds, 32760) 664 doc.duration = min((doc.end_time - doc.start_time).seconds, 32760)
...@@ -657,7 +668,11 @@ class Command(BaseCommand, LoggerMixin): ...@@ -657,7 +668,11 @@ class Command(BaseCommand, LoggerMixin):
657 doc.save() 668 doc.save()
658 self.cronjob_log.error('{0} [process failed (edms upload)] [task={1}] [error={2}]'.format( 669 self.cronjob_log.error('{0} [process failed (edms upload)] [task={1}] [error={2}]'.format(
659 self.log_base, task_str, traceback.format_exc())) 670 self.log_base, task_str, traceback.format_exc()))
671 except Exception as e:
672 self.cronjob_log.error('{0} [process error (edms upload)] [task={1}] [error={2}]'.format(
673 self.log_base, task_str, traceback.format_exc()))
660 else: 674 else:
675 try:
661 doc.status = DocStatus.COMPLETE.value 676 doc.status = DocStatus.COMPLETE.value
662 doc.end_time = timezone.now() 677 doc.end_time = timezone.now()
663 doc.duration = min((doc.end_time - doc.start_time).seconds, 32760) 678 doc.duration = min((doc.end_time - doc.start_time).seconds, 32760)
...@@ -667,7 +682,9 @@ class Command(BaseCommand, LoggerMixin): ...@@ -667,7 +682,9 @@ class Command(BaseCommand, LoggerMixin):
667 doc.save() 682 doc.save()
668 self.cronjob_log.info('{0} [process complete] [task={1}]'.format(self.log_base, task_str)) 683 self.cronjob_log.info('{0} [process complete] [task={1}]'.format(self.log_base, task_str))
669 # os.remove(excel_path) 684 # os.remove(excel_path)
670 685 except Exception as e:
686 self.cronjob_log.error('{0} [process error (completed)] [task={1}] [error={2}]'.format(
687 self.log_base, task_str, traceback.format_exc()))
671 688
672 689
673 # TODO 细化文件状态,不同异常状态,归还队列,重试时采取不同的处理 690 # TODO 细化文件状态,不同异常状态,归还队列,重试时采取不同的处理
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!