2011-06-30 82 views
1

是否可以在gae中運行多處理池?我們可以在GAE中運行多處理池嗎?

如果是的話,爲什麼我的代碼運行在我的本地機器罰款,但彈出和Django遠程API以下錯誤消息:

File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/multiprocessing/pool.py", line 148, in map return self.map_async(func, iterable, chunksize).get()
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/multiprocessing/pool.py", line 422, in get raise self._value TypeError: init() keywords must be strings

+3

開發SDK環境甚至無法確保您的本地計算機僅運行在Google App Engine服務器上運行的東西。因此,在部署到Google App Engine時,如果本地工作的某些功能無法正常工作,尤其是在任何SDK文檔中未提及其使用情況時,都不應該感到驚訝。 如果您需要在App Engine上執行「後臺工作」,您可能對任務隊列感興趣: http://code.google.com/appengine/docs/python/taskqueue/ – Sasha

+0

@Sasha是的。多處理在dev_appserver中工作的唯一原因是它是2.5中引入的功能,OP運行於2.6。 –

回答

2

您將無法運行多處理在生產服務器上,但如果您使用的是remote_api,那麼您可以在本地運行腳本(使用多處理功能),並讓每個Pool進程使用remote_api調用與生產服務器通信。

如果您需要multiprocess風格的操作實際上在服務器端的代碼,那麼Mapper API是完美的任務。

+1

或更有可能的是,任務隊列API。 –

相關問題