提交 75283767 authored 作者: 刘擎阳's avatar 刘擎阳

1.增加重试

上级 b65711ba
...@@ -936,6 +936,15 @@ class CcBL(models.Model): ...@@ -936,6 +936,15 @@ class CcBL(models.Model):
# print(wizard_obj.get_order()) # print(wizard_obj.get_order())
wizard_obj.submit() wizard_obj.submit()
def try_callback_track(self, max_retries=3):
""" 封装的重试逻辑 """
for i in range(max_retries):
is_ok = self.callback_track()
if is_ok:
return True
logging.warning(f"Attempt {i + 1}/{max_retries} failed. Retrying...")
return False
def mail_auto_push(self, mail_time): def mail_auto_push(self, mail_time):
for item in self: for item in self:
try: try:
...@@ -943,10 +952,14 @@ class CcBL(models.Model): ...@@ -943,10 +952,14 @@ class CcBL(models.Model):
before_min = self.env['ir.config_parameter'].sudo().get_param('before_min') or 10 before_min = self.env['ir.config_parameter'].sudo().get_param('before_min') or 10
before_utc_time = utc_time - timedelta(minutes=int(before_min)) before_utc_time = utc_time - timedelta(minutes=int(before_min))
item.push_clear_customs_start(before_utc_time) item.push_clear_customs_start(before_utc_time)
is_ok = item.callback_track() # 尝试调用 callback_track
if is_ok: if self.try_callback_track():
item.push_clear_customs_end(utc_time) item.push_clear_customs_end(utc_time)
item.callback_track() # 再次尝试调用 callback_track
if not self.try_callback_track():
logging.error(f"Failed to push item after {3} attempts.")
else:
logging.error(f"Failed to start process for item after {3} attempts.")
except Exception as err: except Exception as err:
logging.error('fetch_mail_dlv--error:%s' % str(err)) logging.error('fetch_mail_dlv--error:%s' % str(err))
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论