Python 如何使用Google任务队列API安排任务?
我想安排一个任务(即一段代码)在以后执行,其中执行的时间和日期以及其他参数作为任务负载传入 因此,我们有一个基于Python(Django)的Appengine应用程序,其中: 任务在tasks.py中定义Python 如何使用Google任务队列API安排任务?,python,django,google-app-engine,Python,Django,Google App Engine,我想安排一个任务(即一段代码)在以后执行,其中执行的时间和日期以及其他参数作为任务负载传入 因此,我们有一个基于Python(Django)的Appengine应用程序,其中: 任务在tasks.py中定义 @csrf_exempt def task_myfunction(request): if request.method == 'POST': # Read POST parameters # Perform task return HttpRespo
@csrf_exempt
def task_myfunction(request):
if request.method == 'POST':
# Read POST parameters
# Perform task
return HttpResponse("Success")
有效负载被添加到views.py中的队列中,并且有效负载被发布到提供的url,该url映射到上面定义的函数
from google.appengine.api import taskqueue
# ..Somewhere inside a view..
taskqueue.add(queue_name='myqueue', url='/task/myfunction', params={
# Specify parameters
})
有没有办法,我可以指定执行的确切时间(带时区)以及有效负载数据,以便自动从队列中提取任务并在该时间瞬间执行。您可以计算所需时间,然后在添加任务时设置任务的倒计时或
eta
倒计时:
执行此任务前的最短等待时间(秒)。默认值
归零。如果指定了eta,请不要指定倒计时
预计到达时间:
任务执行的最早时间,以秒为单位。
它是一个datetime.datetime,指定绝对ETA或无;这可能是时区感知或时区幼稚。如果没有,则默认为“现在”。从当前日期起必须少于30天
正如你在上面的页面上所看到的,似乎没有一种方法可以完全实现你想要的:时区和特定时间。我想你得做那些计算 您可以计算所需时间,然后在添加任务时设置任务的
倒计时
或eta
倒计时:
执行此任务前的最短等待时间(秒)。默认值
归零。如果指定了eta,请不要指定倒计时
预计到达时间:
任务执行的最早时间,以秒为单位。
它是一个datetime.datetime,指定绝对ETA或无;这可能是时区感知或时区幼稚。如果没有,则默认为“现在”。从当前日期起必须少于30天
正如你在上面的页面上所看到的,似乎没有一种方法可以完全实现你想要的:时区和特定时间。我想你得做那些计算 您可以使用 然后您可以使用appengine后端并使用不区分时区的时间戳来安排任务。
您可以使用 然后您可以使用appengine后端并使用不区分时区的时间戳来安排任务。
您正在寻找ETA。顺便说一句,附带一些代码,并解释如何在将来设置任务
taskqueue.add(
queue_name = "playercommands",
url="/playercommands/next/",
method='POST',
eta=datetime.datetime.now() + datetime.timedelta(0, player.track_duration),
headers={"X-AppEngine-FailFast":"true"} # for now
)
你在找埃塔。顺便说一句,附带一些代码,并解释如何在将来设置任务
taskqueue.add(
queue_name = "playercommands",
url="/playercommands/next/",
method='POST',
eta=datetime.datetime.now() + datetime.timedelta(0, player.track_duration),
headers={"X-AppEngine-FailFast":"true"} # for now
)
谷歌已经更新了他们api的这一部分(对不起,链接是PHP的)。现在,您可以使用包含以下选项的PushTask发送第三个参数:
谷歌已经更新了他们api的这一部分(对不起,链接是PHP的)。现在,您可以使用包含以下选项的PushTask发送第三个参数:
“最早的时间”是什么意思?任务能否在eta后执行?此外,它有助于了解可以将
eta
指定为推送队列的python datetime.datetime对象。回答得好!谢谢我会重新编写它,添加更多细节和一些示例代码。这意味着它不会在该时间之前执行,但会在该时间之后的某个时间执行。不能保证它会在到达ETA的准确时刻执行。示例代码只与截止日期的计算有关,因为它只是传递给任务创建者的一个参数“最早时间”是什么意思?任务能否在eta后执行?此外,它有助于了解可以将eta
指定为推送队列的python datetime.datetime对象。回答得好!谢谢我会重新编写它,添加更多细节和一些示例代码。这意味着它不会在该时间之前执行,但会在该时间之后的某个时间执行。不能保证它会在到达ETA的准确时刻执行。示例代码只与截止日期的计算相关,因为它只是传递给任务创建者的一个参数