我使用任务队列向用户发送未来的提醒。每个任务都很小,但不知怎的,这种情况已经发生,我的应用程序已关闭:
任何可能导致这种情况的想法?
更新
大约30分钟后,我收到了一份非常不同的报道。
“队列中的任务”计数几乎相同,但“任务队列存储任务计数”突然少得多。 :○
要清楚我做了什么:
我清除了“删除”任务,该任务使用了大量CPU,但只有16个小任务,所以它不应该真正影响队列的大小。
< / LI>捕获尝试将任务添加到完整队列时发生的异常。这不应该影响添加的任务量。
浏览Reddit半小时。修好了。
答案 0 :(得分:3)
听起来你的任务队列代码中有一个“叉炸弹”。
如果在任务中添加任务,则在添加任务后引发异常时,可能会意外创建大量任务。重新启动原始任务,再次添加新任务(并且可能会自己制作炸弹),再次引发异常,重试任务等等。
防止这种情况的一种方法是为新任务指定一个特定的名称,使其无法两次添加到队列中。
Brett Slatkin在他的一个Google I / O讲座(here 7:58)中讨论了这个问题。
答案 1 :(得分:2)
我有这个问题,但我在短时间内排队了几千个任务。 如果您觉得代码没有任何问题,那么只需增加任务队列存储任务字节的配额。 在queue.yaml中包含这些行以更改配额
total_storage_limit: 300M