2012-09-29 27 views
1

我一直在研究如何使用GAE應用程序安排GET請求。具體來說,我希望我的應用程序在通過獲取指向另一個應用程序的API的其他URL請求後的1小時內作出響應。使用GAE安排GET請求

延期任務是如何處理的?

我還發現任務有一個「eta」參數,它指定了最早的執行時間。這可能比「_countdown」更受歡迎嗎?

或調查克倫工作?這些GET請求不會定期發生,所以我不知道Cron作業是否合適。

謝謝!如有必要,請幫助我澄清。

回答

2

是的,這是一個很好的方法,你所要做的就是在延遲呼叫中設置_countdown,這就是你想等待的時間,直到這個任務被執行。

實例從docs

deferred.defer(do_something_expensive, _countdown=3600, _queue="myqueue") 

或者你可以簡單地使用Task API在這裏你可以設定何時以及如何精確選擇要執行這一任務的所有不同的參數。無論你最適合,你可以使用etacountdown,從GAE的角度來看,它是完全一樣的。

-1

只要你不想第二個準確度(比如精確度)。我會將請求添加到實現請求隊列的數據存儲中。然後每分鐘都有一份cron作業運行,以查找該時間段內安排的請求。然後我會提交一個任務來執行請求。將任務命名,以便您不太可能重新提交相同的任務。該任務可以重試幾次(如果有錯誤),那麼您可以將請求標記爲已在隊列中完成。

這種方式可以處理任意數量的計劃請求。你不會結束數以千計的任務。你可以知道請求將運行,當他們運行等...

+0

...你爲什麼要這樣做? Cron無論如何都是使用任務隊列來實現的,所以這不會給你帶來什麼 - 只有更差的準確性和更多的複雜性。 –

+0

我誤解了這個問題,雖然他們意味着每個小時,而不是1小時內的一個請求。 –