2012-03-20 88 views
0

我目前正在嘗試開發一些使用Google AppEngine的東西,我使用Python作爲運行時,並且需要一些建議來設置以下內容。Google AppEngine和Threaded Workers

我正在運行一個爲客戶端提供JSON數據的Web服務器,這些數據來自於我必須從中提取數據的外部服務。

我需要做的是運行一個後臺系統,它將檢查memcache是​​否有任何所需的ID,如果有我需要從外部源獲取該ID的一些數據的ID和將數據放入memecache中。

如果有多個ID,> 30我需要儘可能快速和有效地提取所有30個請求。

我是Python開發和AppEngine的新手,所以任何建議你們可以給予很大。

謝謝。

回答

5

您可以使用「後端」或「任務隊列」在後臺運行進程。任務有10分鐘的運行時間限制,後端沒有運行時間限制。還有一個可以定期觸發請求的cronjob機制。

您可以使用「URLFetch」服務從外部服務器獲取數據。

+0

S /任務隊列 – schuppe 2012-03-21 15:21:24

+0

感謝@schuppe 20/10 /分鐘的最後期限固定 – 2012-03-21 15:45:11

1

注意,使用內存緩存爲前端和後端之間的通信機制是不可靠的 - 內存緩存的內容可以在任何時候被部分或完全被擦除(和它確實發生從時間到時間)。

另外請注意,你不能查詢你的memcache提前不知道確切的密鑰。最好使用任務隊列排隊請求,而不是使用memcache,或將數據存儲用作存儲機制。

+0

所以,如果我隊列中的一個任務時,它得到的執行一次右側,然後內完成這項任務,我可以重新排隊? – RobertPitt 2012-03-21 18:37:37

+0

是的,任務可以創建其他任務。但是,如果一個任務返回一個HTTP錯誤,它將被重試(以指數回退)。請參閱我們出色的任務隊列文檔。 http://code.google.com/appengine/docs/python/taskqueue/ – 2012-03-22 04:28:08