celery beat 进行定时任务

风流意气都作罢 提交于 2019-12-01 22:01:50

celery beat是用来开启定时任务调度的,一般用法为:启动celery beat,然后启动worker,让beat去调用worker里面的任务

一般我们在代码里面通过model层的插入直接就可以新建定时任务

schedule,created = IntervalSchedule.objects.get_or_create(
            every = 10,
            period = IntervalSchedule.SECONDS
        )
        PeriodicTask.objects.create(
            interval = schedule,
            name = random.random(),
            task = "adv_celery.tasks.task1.tasks.test",
            #添加参数
            args = json.dumps(["hello "]),
            kwargs = json.dumps({}),
            #expires = datetime.datetime.utcnow() + datetime.timedelta(seconds=30)
        )

由于我们使用的数据库插入模式,记得配置

CELERY_BEAT_SCHEDULER = 'django_celery_beat.schedulers:DatabaseScheduler'

然后我们在adv_celery.tasks.task1.tasks这个文件里面建立一个超级简单的test任务,对应它的路径

 task = "adv_celery.tasks.task1.tasks.test",这个任务这样就可以
@shared_task
def test(arg):
    print("312")

 

然后开启celerybeat,

celery -A 你的应用 beat

 

再开启worker

celery -A 你的应用 worker

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!