Appengine推送队列任务状态

时间:2014-09-10 23:11:56

标签: python google-app-engine

我正在向Appengine的推送队列添加一个长时间运行的任务。然后,我想将我的用户重定向到状态页面,该状态页面在刷新时将告诉用户已完成任务的多少块。

除了使用外部数据存储区跟踪任务的进度外,还有什么选择?

(我没有看到任何关于任务的文档或在另一个视图中检索它。我在网上找到的唯一一件事是3年前的这个答案:Checking status of Task Queue in Google App Engine

1 个答案:

答案 0 :(得分:2)

除了数据存储区,您可以:

  1. 在每个工作块的memcache中保留一个计数器和一个块计数器的总数,这样你知道4个中的2个= 50%已完成。
  2. 使用管道可以提供有关App Engine上异步工作进度的更多信息。 https://code.google.com/p/appengine-pipeline或“使用入门”指南位于https://code.google.com/p/appengine-pipeline/wiki/GettingStarted
  3. 推送队列在提供运行任务完成状态方面并不是很好。您可以考虑转移到Pull队列,并将所有工作单元拆分为单独的拉取队列任务。拉队列有一个实验性功能,您可以使用用户ID标记项目,并且可以通过标记(https://developers.google.com/appengine/docs/python/taskqueue/overview-pull#Python_Leasing_tasks)查询拉队列项目,以了解租用或待处理的项目数。