优化服务号订单广播(Celery并发)与群聊状态实时推送
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -70,6 +70,12 @@ def process_expired_order(self, dingdan_id):
|
||||
order.zhuangtai = 3
|
||||
order.save(update_fields=['zhuangtai'])
|
||||
|
||||
try:
|
||||
from utils.chat_utils import schedule_order_status_chat_push
|
||||
schedule_order_status_chat_push(dingdan_id)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
# 2. 更新打手信息(如果存在)
|
||||
updated_dashou = False
|
||||
if dashou_id:
|
||||
@@ -177,6 +183,24 @@ def retry_establish_order_chat_task(self, dingdan_id):
|
||||
return str(e)
|
||||
|
||||
|
||||
@shared_task(bind=True, max_retries=2, default_retry_delay=10)
|
||||
def push_order_status_chat_task(self, dingdan_id):
|
||||
"""订单状态变更后推送群聊状态卡片"""
|
||||
try:
|
||||
from utils.chat_utils import push_order_status_chat_update
|
||||
ok = push_order_status_chat_update(dingdan_id)
|
||||
if ok:
|
||||
return f'status chat ok {dingdan_id}'
|
||||
if self.request.retries < self.max_retries:
|
||||
raise self.retry()
|
||||
return f'status chat failed {dingdan_id}'
|
||||
except Exception as e:
|
||||
logger.error(f"订单状态聊天推送异常 {dingdan_id}: {e}", exc_info=True)
|
||||
if self.request.retries < self.max_retries:
|
||||
raise self.retry(exc=e)
|
||||
return str(e)
|
||||
|
||||
|
||||
@shared_task
|
||||
@rollback_on_failure("批量检查超时订单")
|
||||
def check_order_expire_task():
|
||||
|
||||
Reference in New Issue
Block a user