celery动态添加周期任务,及周期任务不生效原因解决办法

之前添加尝试在setting中添加任务,由于时区问题,失效。其次使用app.conf.beat_schedule,app.add_periodic_task方法都不奏效,要么报错,要么不报错也不生效。下面使用一种可行方法,就是直接往celery beat得数据库中添加任务

from django_celery_beat.schedulers import CrontabSchedule, PeriodicTask

# 示例:
# 上面方法都不管用,这里直接将任务写入到celery beat的数据库中
# 写入时间库
schedule = CrontabSchedule.objects.create(minute=minute, hour=hour, day_of_month=day_of_month, month_of_year=month,day_of_week=day_of_week, timezone='Asia/Shanghai')
# 写入任务库
PeriodicTask.objects.create(
name=str(uuid.uuid4()), # 任务名不能重复,随机生成
task='scrapyd.tasks.start_spider',
crontab=schedule,
args=json.dumps([id, project_name, spider_name])
)

喜欢(2)

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

欢迎访问的小伙伴! 希望在这里能帮到你。有问题请多多指教~ 点击联系站长
在线客服

在线客服

  • 扫描二维码,微信联系 扫描二维码,进群联系