2012-07-24 163 views
3

我在GAE中以速率1/s推送任務隊列。並不是每個任務都需要執行,但是我只能在被調用時才能驗證它。所以每當任務被調用時,我都有「if(condition)execute else drop」語句。GAE強制推送任務隊列執行下一個任務

現在我的問題是我有太多的任務,其中許多將被丟棄。與其等待下一秒將調用另一個任務,我想強制隊列調用下一個任務,這樣第二個任務就不會被浪費。

我想問一下 - 是否可以迫使隊列立即獲得另一項任務而不是等待?或者我應該實施自己的?

如果不清楚,我很抱歉,我會盡量用更好的詞彙。

在此先感謝!

回答

2

您需要使用pull tasks,對於每個推送任務隊列還需要一個拉任務。當您的推送任務執行從拉隊列中執行一批任務並檢查它們的條件時。
下一步將丟棄所有不再「有效」的任務並執行一個有效的任務。一旦你執行了一個有效的任務,你將返回所有剩下的任務(將他們的時間縮短爲零)。

如果存在有效任務,此流程應該每個推送任務至少承擔一個任務。

+0

謝謝,看起來和我一直在尋找的東西一樣:) – Gricha 2012-07-24 16:00:08

+0

如果你打算每秒處理一個任務,那麼使用後端來處理任務可能會更容易,而不是一個推送隊列每秒一個任務。 – 2012-07-27 05:37:40