2012-04-25 83 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