You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
2.1KB

  1. # from celery import Celery
  2. # # 创建 Celery 应用
  3. # celery_app = Celery(
  4. # 'ai_ops_wechat_app',
  5. # broker='redis://:telpo%231234@192.168.2.121:8090/3',
  6. # backend='redis://:telpo%231234@192.168.2.121:8090/3',
  7. # )
  8. # # 配置 Celery
  9. # celery_app.conf.update(
  10. # task_serializer='json',
  11. # accept_content=['json'],
  12. # result_serializer='json',
  13. # timezone='Asia/Shanghai',
  14. # enable_utc=True,
  15. # )
  16. # #celery_app.autodiscover_tasks(['app.tasks'])
  17. # from celery import Celery
  18. # def make_celery(app):
  19. # celery = Celery(
  20. # app.import_name,
  21. # backend=app.config['CELERY_RESULT_BACKEND'],
  22. # broker=app.config['CELERY_BROKER_URL']
  23. # )
  24. # celery.conf.update(app.config)
  25. # # 自动发现任务
  26. # celery.autodiscover_tasks(['app.tasks'])
  27. # return celery
  28. # # 初始化 Flask
  29. # app = Flask(__name__)
  30. # app.config.update(
  31. # CELERY_BROKER_URL='redis://:telpo%231234@192.168.2.121:8090/3',
  32. # CELERY_RESULT_BACKEND='redis://:telpo%231234@192.168.2.121:8090/3'
  33. # )
  34. # celery = make_celery(app)
  35. from celery import Celery
  36. import celery.schedules
  37. from redbeat import RedBeatSchedulerEntry
  38. from datetime import timedelta
  39. # 配置 Celery
  40. celery_app = Celery(
  41. "worker",
  42. broker="redis://:telpo%231234@192.168.2.121:8090/3",
  43. backend="redis://:telpo%231234@192.168.2.121:8090/3",
  44. include=['tasks']
  45. )
  46. # 配置 redbeat 作为 Celery Beat 调度器
  47. celery_app.conf.update(
  48. timezone="Asia/Shanghai", # 设定时区
  49. beat_scheduler="redbeat.RedBeatScheduler", # 使用 RedBeat 作为调度器
  50. redbeat_redis_url="redis://:telpo%231234@192.168.2.121:8090/3" # redbeat 存储任务调度信息的 Redis
  51. )
  52. task_name = "tasks.scheduled_task"
  53. # 任务执行间隔(每 10 秒执行一次)
  54. schedule = celery.schedules.schedule(timedelta(seconds=10))
  55. # RedBeat 任务唯一 ID
  56. redbeat_entry = RedBeatSchedulerEntry(
  57. name="redbeat:scheduled_task", # 任务 ID
  58. task=task_name, # 任务名称
  59. schedule=schedule, # 任务调度时间
  60. args=[],
  61. app=celery_app
  62. )
  63. # 保存任务到 Redis
  64. redbeat_entry.save()
  65. # 自动发现任务
  66. #celery.autodiscover_tasks(['tasks'])