45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
"""
|
||
Celery应用配置
|
||
"""
|
||
from celery import Celery
|
||
from celery.schedules import crontab
|
||
from app.config import settings
|
||
from app.logger import get_celery_logger
|
||
|
||
logger = get_celery_logger()
|
||
|
||
# 创建Celery应用实例
|
||
celery_app = Celery(
|
||
"ai_talk_callback",
|
||
broker=settings.celery_broker_url,
|
||
backend=settings.celery_result_backend,
|
||
include=['app.celery_tasks']
|
||
)
|
||
|
||
# Celery配置
|
||
celery_app.conf.update(
|
||
task_serializer=settings.celery_task_serializer,
|
||
result_serializer=settings.celery_result_serializer,
|
||
accept_content=settings.celery_accept_content,
|
||
timezone=settings.celery_timezone,
|
||
enable_utc=settings.celery_enable_utc,
|
||
task_track_started=True,
|
||
task_time_limit=30 * 60, # 30分钟超时
|
||
task_soft_time_limit=25 * 60, # 25分钟软超时
|
||
worker_prefetch_multiplier=1,
|
||
worker_max_tasks_per_child=1000,
|
||
|
||
# Beat 调度配置
|
||
beat_schedule={
|
||
'push-data-to-dtc-every-minute': {
|
||
'task': 'push_data_to_dtc',
|
||
'schedule': 60.0, # 每60秒执行一次(1分钟)
|
||
},
|
||
'daily-morning-task': {
|
||
'task': 'call_api',
|
||
'schedule': crontab(hour=9, minute=0) # 每天上午9点执行
|
||
},
|
||
},
|
||
)
|
||
|
||
logger.info("🌿 Celery应用配置完成") |