Просмотр исходного кода

Merge pull request #2308 from visuddhinanda/development

Development
visuddhinanda 9 месяцев назад
Родитель
Сommit
6606538648

+ 2 - 5
ai-translate/ai_translate/ai_translate.py

@@ -1,18 +1,15 @@
 import json
 import time
 import logging
-import requests
 from typing import List, Dict, Any, Optional
 from datetime import datetime
-from requests.exceptions import RequestException
 from dataclasses import dataclass
-import pdb
 import time
 
+import requests
+
 from . import is_stopped
 
-# 配置日志
-logging.basicConfig(level=logging.INFO)
 logger = logging.getLogger(__name__)
 
 

+ 2 - 4
ai-translate/ai_translate/decode_dataclass.py

@@ -1,7 +1,6 @@
-import json
 import dataclasses
-from dataclasses import dataclass, fields, is_dataclass
-from typing import Type, get_type_hints, get_origin, get_args, Union, List, Dict, Any, Optional
+from dataclasses import fields, is_dataclass
+from typing import Type, get_type_hints, get_origin, get_args, Union, List, Dict, Any
 from types import SimpleNamespace
 # 方法1: 使用递归反射的通用解码器
 
@@ -34,7 +33,6 @@ def decode_dataclass(cls, data):
         field_value = data[field_name]
         field_values[field_name] = _decode_field_value(field_type, field_value)
     output = cls(**field_values)
-    breakpoint()
     return output
 
 

+ 11 - 10
ai-translate/ai_translate/worker.py

@@ -1,7 +1,8 @@
 import logging
-from .ai_translate import AiTranslateService, SectionTimeout, Message, Sentence, AiModel, Task, TaskProgress
-from .decode_dataclass import ns_to_dataclass, decode_dataclass, decode_json_to_type, decode_dataclass_list
-from typing import List
+
+from .ai_translate import AiTranslateService, SectionTimeout, Message
+from .decode_dataclass import ns_to_dataclass
+from . import is_stopped
 
 logger = logging.getLogger(__name__)
 
@@ -13,7 +14,7 @@ class TaskFailException(Exception):
 
 
 def handle_message(redis, ch, method, id, content_type, body, api_url, customer_timeout):
-    maxRetry = 3
+    MaxRetry = 3
     try:
         logger.info("process message start (%s) messages", len(body.payload))
         consumer = AiTranslateService(
@@ -23,17 +24,15 @@ def handle_message(redis, ch, method, id, content_type, body, api_url, customer_
         ch.basic_ack(delivery_tag=method.delivery_tag)  # 确认消息
     except SectionTimeout as e:
         # 时间到了,活还没干完 NACK 并重新入队
-        ch.basic_nack(delivery_tag=method.delivery_tag,
-                      requeue=True)
-        pass
+        ch.basic_nack(delivery_tag=method.delivery_tag, requeue=True)
     except Exception as e:
         # retry
         retryKey = f'{redis[1]}/message/retry/{id}'
         retry = 0
         if redis[0].exists(retryKey):
             retry = redis[0].get(retryKey)
-        if retry > maxRetry:
-            logger.error(f'超过最大重试次数[{maxRetry}],任务失败')
+        if retry > MaxRetry:
+            logger.error(f'超过最大重试次数[{MaxRetry}],任务失败')
             # NACK 丢弃或者进入死信队列
             ch.basic_nack(delivery_tag=method.delivery_tag,
                           requeue=False)
@@ -41,8 +40,10 @@ def handle_message(redis, ch, method, id, content_type, body, api_url, customer_
         retry = retry+1
         redis[0].set(retryKey, retry)
         # NACK 并重新入队
-        logger.warning(f'消息处理错误,重新压入队列 [{retry}/{maxRetry}]')
+        logger.warning(f'消息处理错误,重新压入队列 [{retry}/{MaxRetry}]')
         ch.basic_nack(delivery_tag=method.delivery_tag,
                       requeue=True)
         logger.error(f"error: {e}")
         logger.exception("发生异常")
+    finally:
+        is_stopped()