【问题标题】:GAE push queue tasks are getting blockedGAE 推送队列任务被阻塞
【发布时间】:2015-02-04 15:24:52
【问题描述】:

在后端运行 GAE 推送队列任务时遇到问题。一些任务无限期运行并阻止其他任务运行。

后台重启后的附加日志截图 - http://snag.gy/3xeyE.jpg

Push Queue任务配置如下

最大速率 5/s | 强制速率 5/s | 桶大小 5.0 | 最大并发数 10 | 重试限制 1

任务向后端servlet发送请求,其中任务从其他拉队列中租用并执行,直到后端停止或拉队列租用无限循环返回空。

我们要小心,如果没有任务被租用,无限循环会中断。这些请求下没有给出日志来了解这些进程正在运行。

几个观察:

'cpu_ms' 对于大多数这些进程来说是 0

他们中的大多数也没有“pending_ms”

队列中的其他任务在这些任务完成之前被阻塞。

这对我们来说是非常严重的问题。

请帮帮我。

【问题讨论】:

    标签: java google-app-engine task-queue


    【解决方案1】:

    我建议您尝试以下方法:

    1. 取消暂停有任务卡在里面的队列;

    2. 删除队列中与卡住的特定作业相关的所有任务;

    3. 删除与数据存储区中特定作业或任务相关的所有种类;

    4. 重新启动队列中的特定任务。

    【讨论】:

    • 感谢您的回复。当我们手动遇到此问题时,我们还习惯于清除队列并重新启动后端,这对我们来说不是最佳选择。目前,我们增加了后端实例并增加了队列参数,例如最大并发请求、存储桶大小和检查。直到现在我们都没有再面对它。希望能解决
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-16
    • 2013-02-19
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多