任务队列已填满

时间:2011-03-30 12:04:47

标签: google-app-engine

我使用任务队列向用户发送未来的提醒。每个任务都很小,但不知怎的,这种情况已经发生,我的应用程序已关闭: enter image description here

任何可能导致这种情况的想法?

更新

大约30分钟后,我收到了一份非常不同的报道。 enter image description here

“队列中的任务”计数几乎相同,但“任务队列存储任务计数”突然少得多。 :○

要清楚我做了什么:

  • 我清除了“删除”任务,该任务使用了大量CPU,但只有16个小任务,所以它不应该真正影响队列的大小。

    < / LI>
  • 捕获尝试将任务添加到完整队列时发生的异常。这不应该影响添加的任务量。

  • 浏览Reddit半小时。修好了。

2 个答案:

答案 0 :(得分:3)

听起来你的任务队列代码中有一个“叉炸弹”。

如果在任务中添加任务,则在添加任务后引发异常时,可能会意外创建大量任务。重新启动原始任务,再次添加新任务(并且可能会自己制作炸弹),再次引发异常,重试任务等等。

防止这种情况的一种方法是为新任务指定一个特定的名称,使其无法两次添加到队列中。

Brett Slatkin在他的一个Google I / O讲座(here 7:58)中讨论了这个问题。

答案 1 :(得分:2)

我有这个问题,但我在短时间内排队了几千个任务。 如果您觉得代码没有任何问题,那么只需增加任务队列存储任务字节的配额。 在queue.yaml中包含这些行以更改配额

total_storage_limit: 300M