如何使用Google Task Queues API安排任务?

Pra*_*tal 1 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 HttpResponse("Success")
Run Code Online (Sandbox Code Playgroud)

Payload被添加到views.py中的队列中,并且有效负载被POST到提供的URL,该URL映射到上面定义的函数.

from google.appengine.api import taskqueue

# ..Somewhere inside a view..
taskqueue.add(queue_name='myqueue', url='/task/myfunction', params={
    # Specify parameters
    })
Run Code Online (Sandbox Code Playgroud)

有没有办法,我可以指定执行的准确时间(带有时区)以及有效负载数据,以便从队列中自动获取任务并在该时刻执行.

Pau*_*ood 5

您可以计算所需的时间,然后在添加时设置countdowneta执行任务.

倒数:

执行此任务之前等待的最短时间(以秒为单位).默认为零.如果指定了eta,请勿指定倒计时.

ETA:

任务执行的最早时间,以秒为单位.它是一个datetime.datetime,指定绝对ETA或None; 这可能是时区感知或时区天真.如果为None,则默认为now.它必须在当前日期之后不到30天.

https://developers.google.com/appengine/docs/python/taskqueue/tasks

正如您在上面的页面中看到的那样,似乎没有办法完全按照您的需要进行操作:时区和特定时间.我想你必须做那些计算.