我认为Google App Engine中的任务队列(push,pull,deferred)并不能保证任务将以FIFO的顺序执行。例如,假设我有任务A,B和C的任务队列,并且每个任务都有时间戳t_A,t_B和t_C,例如t_A < t_B < t_C。我如何确保按照时间戳顺序执行任务A,B和C?如果任务B失败,我想推迟任务C的执行直到任务B成功执行。我已经看到了一个ETA字段来设置任务可以发送的最早时间,但是这看起来更像是启发式的,而不是保证。如何使用Google App Engine任务队列以(FIFO)顺序执行任务?
2
A
回答
2
考虑使用管道API:
https://github.com/GoogleCloudPlatform/appengine-pipelines
他们已经完成的工作适合你:
class LogWaitLogInOrder(pipeline.Pipeline):
def run(self, message1, message2, delay):
with pipeline.InOrder():
yield LogMessage(message1)
yield Delay(seconds=delay)
yield LogMessage(message2)
yield LogMessage('This would happen immediately on run')
管道API还为您提供了举报/反馈/通知/等。
但是,如果这是矫枉过正您的特定需要,那么就不要为@保罗建议,刚刚创建的下一个任务中的第一个完成时,希望最好
视频参考:
谷歌I/O 2010 - 数据管道与谷歌应用程序引擎:
相关问题
- 1. Google App Engine,任务队列
- 2. Google App Engine任务队列
- 3. 是否可以在Google App Engine任务队列中执行任务?
- 4. 如何替换Google App Engine任务队列上的任务?
- 5. Google App Engine:如何使用任务队列进行此处理?
- 6. GWT上的Google App Engine任务队列
- 7. Google App Engine任务队列后端Python
- 8. Google App Engine任务队列错误
- 9. Google App Engine - 任务队列与Cron Jobs
- 10. Google App Engine - Cron或任务队列?
- 11. 使用Python API的Google App Engine任务队列错误
- 12. 如何获取Google App Engine任务队列失败的通知
- 13. 谷歌App Engine任务队列
- 14. Google App Engine - 任务队列名称和事务
- 15. 在Google App Engine中禁用任务队列重试
- 16. 按顺序执行任务
- 17. 如何使用Google App Engine上的任务队列获取返回值(如Ajax)
- 18. 如何在AsyncTask中顺序执行多个任务(队列)
- 19. 更改顺序芹菜工队从队列中执行任务
- 20. 如何设置使用任务队列和GWT的Google App Engine项目?
- 21. 如何在App Engine之外使用Google Pull任务队列REST API?
- 22. 任务队列执行
- 23. Google App Engine任务队列获取统计失败
- 24. Google App Engine中任务队列的时间限制
- 25. Google App Engine:确定当前请求是否为任务队列
- 26. 测量Google App Engine中的任务队列成本
- 27. 检查Google App Engine中任务队列的状态
- 28. 使用Task.Factory.StartNew执行任务队列
- 29. Google App Engine Java任务队列如何用于用户的批量调度?
- 30. 如何顺序执行任务? Swift3
CON从旁边调用下一个任务? –
如果我理解正确,这基本上意味着我将自己管理任务执行和工作流程。我希望能坚持使用Google App Engine任务队列。但Google App Engine任务队列和任务不在API中提供'execute()'方法,似乎禁止从另一个任务执行队列中的任务。 – morfys
而是您可以创建一个任务作为当前任务执行的最后一件事情。 –