0

Facebook や Twitter からソーシャル コンテンツを集約するセロリ タスクを開発しています。

タスクは次のとおりです。

  • facebook_service_handler
  • facebook_contents_handler
  • image_resize
  • save_contents_info

'facebook_service_handler' および 'facebook_contents_handler' タスクは、urlopen 関数で facebook オープン API を使用します。

urlopen リクエストが多くない場合にうまく機能しています。(4~5回未満) しかし、urlopenリクエストが4~5回を超えると、workerは動作しなくなります。

また、セロリが停止したら、redis と celeryd を中断し、celeryd と redis を再起動します。最後のタスクが実行されます

この問題について私を助けてくれる人はいますか??

私はmac os lionで作業しています。

4

1 に答える 1

2

理想的には、2 つの異なるキューが必要です。1 つはネットワーク I/O 用 (より多くのプロセスを「発生させる」ことができる eventlet を使用) で、もう 1 つはその他のタスク (マルチプロセッシングを使用) 用です。これが複雑だと感じたら、CELERYD_TASK_SOFT_TIME_LIMITを見てください。セロリタスク内で urllib.open を使用すると、接続がハングしてシステム全体が混乱する可能性があるため、同様の問題が発生しました。

于 2012-04-25T08:32:14.993 に答える