2012-04-25 85 views
0

我正在開發芹菜任務來彙總facebook和twitter的社交內容。芹菜與redis不能很好地工作

任務是如下

  • facebook_service_handler
  • facebook_contents_handler
  • image_resize
  • save_contents_info

'facebook_service_handler' 和 'facebook_contents_handler' 任務使用Facebook開放API與urlopen函數取回。

當urlopen請求不是很多時,它運行良好。 (不到4〜5次) 但是當申請超過4〜5時,員工不再工作。

也 當芹菜停止時,我打破了redis和芹菜,並重新啓動celeryd和redis。 最後的任務執行

任何機構幫助我解決這個問題??

我正在mac os獅子上工作。

回答

2

理想情況下,您應該有兩個不同的隊列,一個用於網絡I/O(使用eventlet,可以「引發」更多進程),另一個用於其他任務(使用多處理)。如果您覺得這很複雜,請看CELERYD_TASK_SOFT_TIME_LIMIT。在芹菜任務中使用urllib.open時,我遇到了類似的問題,因爲連接可能會掛起並混亂整個系統。

+0

謝謝你的回答!我已經解決了我的問題。其實這是個愚蠢的問題。它由低併發選項引起。但是你的回答有助於讓我更聰明。謝謝! ^^ – shchoi 2012-04-26 06:05:14