首页 > 解决方案 > 谷歌云任务:一些任务留在队列中而不是被处理

问题描述

我有一个谷歌云任务队列(速率:10/s,存储桶:200,并发:1)将任务分派给 App Engine 服务(python 2.7 运行时)中的工作人员任务通常添加到队列中大约 3-4/ s。每个任务一次处理一个(无并发)

一般来说,每个任务的处理速度都非常快(小于 1sg)。令人惊讶的是,队列有时会随机“暂停”一小部分 5-20 个任务。新的传入任务照常处理,但这些任务被阻塞并在队列中停留几分钟,即使工人空闲并可能处理它们。7-9 分钟后,它们会自动处理,无需任何其他交互。问题是这种延迟太多而且不可接受:(

在“暂停”时,我可以通过单击“运行”按钮手动执行这些任务,它们会立即得到处理。所以我会放弃对工人方面的某种限制。

我尝试重新部署 queue.yaml。我还尝试暂停和恢复队列。两者都没有效果。

不会通知任何错误。任务不会重试,只是忽略几分钟。

有没有人经历过这种行为?任何帮助将不胜感激。谢谢。

标签: google-cloud-tasks

解决方案


Cloud Tasks 现在使用gcloud(Cloud SDK) 来管理队列配置。queue.yaml是用于 App Engine 任务队列的旧版 App Engine SDK 的一部分。queue.yaml在使用 Cloud Tasks 时上传 a可能会导致您的队列被禁用或暂停。

要了解有关队列管理的更多信息,请参阅使用队列管理与 queue.yaml
要了解有关从任务队列迁移到云任务的更多信息,请参阅从任务队列迁移到云任务


推荐阅读