我的任务队列中有一个长时间运行的进程,它导致了 DeadlineExceededError,因为该任务可能需要超过 10 分钟。正如我在这个问题中所描述的,长时间运行的进程有一个 for 循环,该循环顺序计算用于创建 kml 文件的大型字典中的新值。目前的任务如下所示:
class longprocess_handler(webapp2.RequestHandler):
def post(self):
#This is currently one task that recursively uses data in dictionaries to
#produce kml files every few minutes
for j in range(0, Time):
# Processes data from dictionaries sequentially in this for loop
# Sends message to client to request the data.
我想将这个过程分成几个较小的任务,例如:
class longprocess_handler(webapp2.RequestHandler):
def post(self):
for j in range(0, Time):
# Send dictionaries to smaller task
CallSmallerTask_handler(dictionaries)
# Receive dictionaries back from task. (How do I do this?)
# Repeat for loop with new dictionaries to call next task.
有没有办法从任务中获取数据,以便我可以创建一个较小任务的循环,这些任务是使用前一个任务的结果按顺序创建的?我是否需要将上一个任务中的字典存储在数据存储中,然后检索它们以创建下一个任务?(我希望避免这种情况,因为字典非常大,我认为这可能很困难)。