我想在任务队列中加载几个任务(推送),然后确定我添加到队列中的任务组何时完成。我有以下代码:
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:“如果此任务已成功删除,则为真。” https://developers.google.com/appengine/docs/python/taskqueue/tasks#Task_was_deleted
如果拉取任务创建成功,您的应用程序需要在处理后删除该任务。系统最多可能需要 7 天时间来识别任务已被删除;在此期间,任务名称仍然不可用。在此期间尝试使用相同名称创建另一个任务将导致“项目存在”错误。系统没有提供方法来确定已删除的任务名称是否仍在系统中。为避免这些问题,我们建议您让 App Engine 自动生成任务名称。 https://developers.google.com/appengine/docs/python/taskqueue/overview#Task_Concepts
这一段似乎暗示您不能立即确定给定任务何时被删除。这个对吗?
我的问题:
- was_deleted 的预期用途是什么
- 您如何确定添加到推送队列的特定任务(或任务组)何时完成