""" 阿龙电竞 - Celery 定时任务主配置 业务约定(2026-07):Beat 只跑两条 1) 资金冻结到期解冻 2) 可控订单自动结算 其余榜单/清零类任务保留代码但不进 beat_schedule,不会定时执行。 """ import os from celery import Celery from celery.schedules import crontab os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'a_long_dianjing.settings') app = Celery('a_long_dianjing') app.config_from_object('django.conf:settings', namespace='CELERY') # 仅自动发现仍可能被调用的任务模块;旧超时结算 orders.tasks 永不加载 app.autodiscover_tasks(['jituan.tasks', 'users.tasks', 'users.ranking_tasks', 'config.tasks']) # ========== Beat:只保留这两个 ========== app.conf.beat_schedule = { # 资金冻结到期解冻(俱乐部未开冻结 / 无到期单 → 空跑) 'scan_fund_freeze_due': { 'task': 'jituan.tasks.scan_fund_freeze_due', 'schedule': crontab(minute='*/5'), 'options': { 'queue': 'periodic_tasks', 'priority': 4, }, }, # 可控自动结算(俱乐部后台开关关 → 空跑;只处理 AutoSettleEligible 新单) 'scan_order_auto_settle_due': { 'task': 'jituan.tasks.scan_order_auto_settle_due', 'schedule': crontab(minute='*/5'), 'options': { 'queue': 'periodic_tasks', 'priority': 4, }, }, } app.conf.timezone = 'Asia/Shanghai' app.conf.enable_utc = True app.conf.task_routes = { 'jituan.tasks.*': {'queue': 'periodic_tasks'}, 'users.tasks.*': {'queue': 'periodic_tasks'}, 'config.tasks.*': {'queue': 'periodic_tasks'}, } app.conf.accept_content = ['json'] app.conf.task_serializer = 'json' app.conf.result_serializer = 'json' app.conf.task_time_limit = 300 app.conf.task_soft_time_limit = 240 app.conf.worker_concurrency = 4 app.conf.worker_prefetch_multiplier = 1 app.conf.task_acks_late = True app.conf.worker_disable_rate_limits = True app.conf.result_expires = 3600