celery_app.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. from celery import Celery
  2. from celery.schedules import crontab
  3. from alien_gateway.config import settings
  4. # 创建 Celery 应用
  5. celery_app = Celery(
  6. "alien_cloud",
  7. broker=settings.REDIS_SENTINEL_URL,
  8. backend=settings.REDIS_SENTINEL_URL,
  9. include=["alien_util.tasks.contract_tasks"]
  10. )
  11. # Celery 配置
  12. celery_app.conf.update(
  13. task_serializer="json",
  14. accept_content=["json"],
  15. result_serializer="json",
  16. timezone="Asia/Shanghai",
  17. enable_utc=True,
  18. broker_transport_options={
  19. "master_name": settings.REDIS_MASTER_NAME,
  20. "sentinel_kwargs": {},
  21. "password": settings.REDIS_PASSWORD,
  22. "db": settings.REDIS_DB,
  23. },
  24. result_backend_transport_options={
  25. "master_name": settings.REDIS_MASTER_NAME,
  26. "sentinel_kwargs": {},
  27. "password": settings.REDIS_PASSWORD,
  28. "db": settings.REDIS_DB,
  29. },
  30. # 定时任务配置
  31. beat_schedule={
  32. "check-contract-expiry": {
  33. "task": "alien_util.tasks.contract_tasks.check_contract_expiry",
  34. "schedule": crontab(hour=0, minute=1), # 每天凌晨0点1分执行
  35. },
  36. },
  37. )