Google Cloud Tasks:某些任务保留在队列中而不是被处理

时间:2019-06-18 12:23:13

标签: google-cloud-tasks

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

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

在“暂停”期间,我可以通过单击“运行”按钮来手动执行这些任务,然后立即对其进行处理。所以我会放弃对工人的某种限制。

我尝试重新部署queue.yaml。我还尝试暂停并恢复队列。两者都无效。

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

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

1 个答案:

答案 0 :(得分:0)

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

要了解有关队列管理的更多信息,请参见Using Queue Management versus queue.yaml
要了解有关从任务队列迁移到云任务的更多信息,请参阅Migrating from Task Queues to Cloud Tasks