我想在任务队列中加载多个任务(推送),然后确定我已经添加到队列中的任务组何时完成。我有以下代码:确定任务是否已被删除GAE Python
task = taskqueue.add(url='/task')
import time
while not task.was_deleted:
logging.info('not deleted yet')
time.sleep(1)
无限循环。我预计,一旦任务被处理并删除,'was_deleted'参数将返回True。但即使任务被删除,'was_deleted'仍然返回false。以下是文档的说明:
task.was_deleted:“如果此任务已成功删除,则为true。” https://developers.google.com/appengine/docs/python/taskqueue/tasks#Task_was_deleted
如果拉任务成功创建,您的应用程序需要在处理后删除任务。系统可能需要七天时间才能确认任务已被删除;在此期间,任务名称仍然不可用。尝试在此期间创建具有相同名称的另一个任务将导致“存在项目”错误。系统不提供确定删除的任务名称是否仍在系统中的方法。为避免这些问题,我们建议您让App Engine自动生成任务名称。 https://developers.google.com/appengine/docs/python/taskqueue/overview#Task_Concepts
这段似乎建议您不能立即确定给定任务何时被删除。它是否正确?
我的问题:
- 有什么用途为was_deleted
- 你怎么确定何时特定任务(或任务组)加入伫列已经完成
我需要的是进行动态创造了许多不同的队列 - 我不认为这是可能的,你必须定义在queue.yaml中 – waigani
我知道手动每一个新的队列,在我的情况下,它的作品,因为我有一批所有相同类型的任务。因此,每次批处理运行时,结束任务都会在继续之前检查队列是否为空。但那只是我的情况,我想也许它可以帮助你。 – payala