Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用django&;在特定时间启动任务;芹菜_Python_Django_Date_Celery - Fatal编程技术网

Python 如何使用django&;在特定时间启动任务;芹菜

Python 如何使用django&;在特定时间启动任务;芹菜,python,django,date,celery,Python,Django,Date,Celery,我正在使用芹菜,它适用于异步,但我需要设置一个特定日期时间的操作 例如,“2019年8月30日11:35,进行此操作。” My Celly.py现在非常简单,但它可以工作: import time from datetime import datetime, timedelta from datetime import date from celery import shared_task,current_task, task from celery import Celery app = C

我正在使用芹菜,它适用于异步,但我需要设置一个特定日期时间的操作

例如,“2019年8月30日11:35,进行此操作。”

My Celly.py现在非常简单,但它可以工作:

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
我从视图中调用它,并在rabbit上运行print

你知道如何编写任务吗

编辑:

我试图称之为“测试”

在花中,它接受任务却不执行,为什么


芹菜组件负责安排任务在特定时间运行,或在一段时间后重复运行,称为芹菜节拍(scheduler)。芹菜文档有一个描述它的文档,详细说明了如何运行它以及如何配置它。如果您熟悉crontab,您可以轻松创建自己的计划任务运行。

要计划任务,您需要使用芹菜节拍

from celery.task import periodic_task 
@periodic_task(run_every=crontab(minute="*")) # It will run your task every minute
def schedule_task():
    print('1')
    todaynow = datetime.now()
    print(todaynow)
您可以使用定期任务在任何特定时间安排任务。 要了解更多信息,请使用此链接


创建任务后,别忘了重新启动芹菜节拍。

您可以使用芹菜为“2019年8月30日11分钟和35分钟进行此操作”创建一个单执行的定期计划程序,例如:

导入时间
从datetime导入datetime,timedelta
起始日期时间导入日期
从芹菜导入芹菜,共享任务,当前任务,任务
从celery.schedules导入crontab
app=芹菜()
@app.on\u在\u configure.connect之后
def设置定期任务(发送方,**kwargs):
sender.add_定期任务(
crontab(小时=11,分钟=35,月日=30,年月日=8),
test.s(),
expires=1
)
@应用程序任务
def test():
打印('1')
todaynow=datetime.now()
今日打印

要在特定时间运行任务,可以将
eta
参数传递给


接收但不执行,为什么?在指定为etawait的日期时间之前它不会执行,是否可能存在UTC问题?有可能,flower告诉您任务是在4:25收到的,将在6:28执行是。。。。。我尝试在utc中设置一个任务,它可以工作!如何配置时区?我已经在设置芹菜时区='欧洲/罗马',但它似乎不起作用
from celery.task import periodic_task 
@periodic_task(run_every=crontab(minute="*")) # It will run your task every minute
def schedule_task():
    print('1')
    todaynow = datetime.now()
    print(todaynow)
test.apply_async(eta=datetime.datetime(2019, 8, 30, 11, 35))