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