6

App Engine 中的推送队列一般是FIFO 队列,但是从链接文档中可以看出,在队列有大量任务积压的情况下,调度程序可能会将新任务跳转到队列头部以试图减少潜伏。

这种超前跳转对于负载重的应用程序是有意义的,但这意味着不能保证 FIFO 行为是一致的。

现在的问题是,拉队列怎么样?上述行为在推送队列中是有意义的,但在拉取队列中则不那么有意义,因为从拉取队列中租用任务和扩大工作人员数量的责任落在了应用程序本身。如果拉队列中不存在队列前跳跃行为,是否意味着拉队列始终表现出 FIFO 行为?

此外,我似乎在官方拉队列文档中找不到任何关于任务排序的文档

4

1 回答 1

1

不,在任何一个拉队列中都没有排序保证。

虽然通常会首先租用具有最旧 ETA 的任务,但不能保证会如此。您的应用程序应该能够处理以任何顺序从队列中取出的任务。

于 2012-09-14T21:24:32.807 回答