如何通过django视图安排芹菜任务

问题描述

有什么方法可以在django视图中定义日期和时间,并在定义的时间运行celery任务?

例如

def test(request):
    date = '2020-09-12'
    time = '11:34'
    
    # run the below task at the specified time
    test_celery_test.delay()
    
    ...

我希望任务在指定的时间仅运行一次,并且不应重复

解决方法

您可以在下面尝试吗

让我们说这是您的任务

import time
from datetime import datetime,timedelta
from datetime import date
from celery import shared_task,current_task,task
from celery import Celery

app = Celery()

@app.task
def test():

    print ('1')
    todaynow = datetime.now()

    print todaynow

然后,您可以在自己的视图中这样调用。py

test.apply_async(eta=datetime.datetime(2019,8,30,11,35))

如果您只想运行一次,为什么要放入views.py,我建议您在common或crontab的自定义管理中查找相同的内容。

谢谢