确定任务是否已被GAE Python删除

确定任务是否已被GAE Python删除,python,google-app-engine,queue,Python,Google App Engine,Queue,我想在任务队列(push)中加载几个任务,然后确定我添加到队列中的任务组何时完成。我有以下代码: task = taskqueue.add(url='/task') import time while not task.was_deleted: logging.info('not deleted yet') time.sleep(1) 这是无限循环的。我希望一旦任务被处理和删除,“was_deleted”参数将返回True。但即使任务被

我想在任务队列(push)中加载几个任务,然后确定我添加到队列中的任务组何时完成。我有以下代码:

    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。”

如果成功创建拉动任务,则应用程序需要在处理后删除该任务。系统可能需要长达七天的时间来识别任务已被删除;在此期间,任务名称仍然不可用。在此期间尝试使用相同名称创建另一个任务将导致“项存在”错误。系统没有提供确定已删除任务名称是否仍在系统中的方法。为了避免这些问题,我们建议您让App Engine自动生成任务名称。

这一段似乎表明,您无法立即确定给定任务何时被删除。这是正确的吗

我的问题是:

  • 删除的目的是什么
  • 如何确定添加到推送队列的特定任务(或任务组)何时完成

  • 我不能回答你的第一个问题,但第二个问题,我和你有同样的需要

    我所做的是将要检查完成情况的任务分组到队列中,并使用QueueStatistics类查看该队列中剩余任务的数量

    下面的代码说明了如何获取该数据。您可以在交互式控制台中尝试

    from google.appengine.api import taskqueue
    
    statsList = taskqueue.QueueStatistics.fetch(taskqueue.Queue("default"))
    
    print(statsList.tasks)
    

    我不能回答你的第一个问题,但第二个问题,我和你有同样的需要

    我所做的是将要检查完成情况的任务分组到队列中,并使用QueueStatistics类查看该队列中剩余任务的数量

    下面的代码说明了如何获取该数据。您可以在交互式控制台中尝试

    from google.appengine.api import taskqueue
    
    statsList = taskqueue.QueueStatistics.fetch(taskqueue.Queue("default"))
    
    print(statsList.tasks)
    

    我需要动态创建许多不同的队列-我认为这是不可能的,因为您必须在队列中手动定义每个新队列。yamlI知道,在我的情况下,它可以工作,因为我有一批类型相同的任务。因此,每次批处理运行时,结束任务都会在继续之前检查队列是否为空。但这只是我的情况,我想它可能会帮助你。我需要动态创建许多不同的队列-我认为这是不可能的,因为你必须在队列中手动定义每个新队列。yamlI知道,在我的情况下,它可以工作,因为我有一批类型相同的任务。因此,每次批处理运行时,结束任务都会在继续之前检查队列是否为空。但这只是我的情况,我想也许它能帮助你。