2011-03-30 66 views
1

我使用任務隊列向用戶發送未來提醒。每個任務都非常小,但不知何故這種情況發生了,我的應用程序已關閉: enter image description here填寫任務隊列

任何想法可能會導致這種情況?

更新

只需約30分鐘後,我得到一個非常不同的報告。 enter image description here

「隊列中的任務」計數幾乎相同,但「任務隊列存儲的任務計數」突然少得多。 :○

只是要清楚我所做的:

  • 我清除的「刪除器」的任務,這是使用大量的CPU,但它只有16個小任務,所以它不應該真的很大程度上影響了隊列的大小。

  • 捕獲當您嘗試將任務添加到完整隊列時發生的異常。這應該不會影響添加的任務數量。

  • 瀏覽了Reddit半小時。這解決了它。

+1

不正確的編碼? – 2011-03-30 12:07:11

+0

是的,我顯然做錯了什麼,但我無法弄清楚如此少量的任務會佔用這麼多空間。 – Bemmu 2011-03-30 12:22:25

+0

您是否知道可以增加分配給任務隊列的存儲空間量? – 2011-03-30 23:37:33

回答

3

聽起來就像你在任務隊列中有一個「叉炸彈」。

如果在任務中添加任務,如果在添加任務後引發異常,您可能會意外創建大量任務。原來的任務被重試,新的任務被重新添加(並且可能會自己的炸彈),異常再次被提升,任務被重試等。

阻止這種情況的一種方法是給新任務一個具體名稱,以便它不能被添加到隊列兩次。

Brett Slatkin在他的一個Google I/O講座(here at 7:58)中對此進行了討論。

+0

+1叉炸彈肯定的,我已經看到了這個確切的問題在我的第一次Gae實驗:) – systempuntoout 2011-03-30 19:31:26

2

我有這個問題,但我在短時間內排隊幾千個任務。 如果您感覺代碼沒有問題,那麼只需增加任務隊列存儲任務字節的配額。 在您的queue.yaml中包含這些行以更改配額

total_storage_limit: 300M