优化服务号订单广播(Celery并发)与群聊状态实时推送

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-06-24 00:43:30 +08:00
parent 56c66846cc
commit 49ba67ecaf
9 changed files with 458 additions and 331 deletions

View File

@@ -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():