禁用除新订单服务号广播外的所有 Celery/Beat 任务,仅保留 dingdan_guangbo

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-06-24 00:57:42 +08:00
parent 49ba67ecaf
commit ef2f30f321
13 changed files with 131 additions and 150 deletions

View File

@@ -17,6 +17,7 @@ import logging
from dingdan.models import Dingdan, DingdanShangjia
from yonghu.models import UserMain, UserDashou, UserShangjia
from utils.celery_utils import safe_decimal_operation, log_task_execution, rollback_on_failure
from utils.celery_guard import celery_non_broadcast_blocked
logger = logging.getLogger(__name__)
@@ -33,6 +34,11 @@ def process_expired_order(self, dingdan_id):
"""
处理单个超时订单(订单状态=8超过48小时未处理
"""
blocked = celery_non_broadcast_blocked()
if blocked:
logger.info('跳过 process_expired_order(%s): %s', dingdan_id, blocked)
return blocked
if not getattr(settings, 'ORDER_AUTO_SETTLE_ENABLED', False):
logger.info('订单自动结算已禁用,跳过 process_expired_order(%s)', dingdan_id)
return f'自动结算已禁用,跳过订单{dingdan_id}'
@@ -166,6 +172,10 @@ def process_expired_order(self, dingdan_id):
@shared_task(bind=True, max_retries=3, default_retry_delay=15)
def retry_establish_order_chat_task(self, dingdan_id):
"""抢单后建聊失败时的延迟补偿任务"""
blocked = celery_non_broadcast_blocked()
if blocked:
return blocked
try:
from utils.chat_utils import establish_order_chat_with_retry
ok = establish_order_chat_with_retry(dingdan_id, max_rounds=5)
@@ -186,6 +196,10 @@ def retry_establish_order_chat_task(self, dingdan_id):
@shared_task(bind=True, max_retries=2, default_retry_delay=10)
def push_order_status_chat_task(self, dingdan_id):
"""订单状态变更后推送群聊状态卡片"""
blocked = celery_non_broadcast_blocked()
if blocked:
return blocked
try:
from utils.chat_utils import push_order_status_chat_update
ok = push_order_status_chat_update(dingdan_id)
@@ -209,6 +223,11 @@ def check_order_expire_task():
每5分钟执行一次作为信号处理的备用方案
查找状态为8且创建时间超过72小时的订单宽松时间防止误处理
"""
blocked = celery_non_broadcast_blocked()
if blocked:
logger.info('跳过 check_order_expire_task: %s', blocked)
return {"success": True, "message": blocked, "count": 0}
if not getattr(settings, 'ORDER_AUTO_SETTLE_ENABLED', False):
logger.info('订单自动结算已禁用,跳过 check_order_expire_task')
return {"success": True, "message": "自动结算已禁用", "count": 0}