芹菜与redis效果不佳

时间:2012-04-25 02:12:43

标签: django celery django-celery

我正在开发芹菜任务,以汇总来自facebook和twitter的社交内容。

任务如下

  • facebook_service_handler
  • facebook_contents_handler
  • image_resize
  • save_contents_info

'facebook_service_handler'和'facebook_contents_handler'任务使用facebook open api和urlopen函数。

当urlopen请求不多时,它运行良好。 (4~5次以下) 但当urlopen请求超过4~5时,工作人员不再工作了。

也 当芹菜停止时,我打破了redis和celeryd,然后重新启动celeryd和redis。 最后的任务被执行

任何人帮我解决这个问题吗?

我在mac os lion上工作。

1 个答案:

答案 0 :(得分:2)

理想情况下,您应该有两个不同的队列,一个用于网络I / O(使用eventlet,您可以“引发”更多进程),另一个用于其他任务(使用多处理)。如果您认为这很复杂,请查看CELERYD_TASK_SOFT_TIME_LIMIT。在celery任务中使用urllib.open时遇到了类似的问题,因为连接可能会挂起并弄乱整个系统。