2012-04-25 4 views
0

Je développe des tâches de céleri pour agréger les contenus sociaux de facebook et twitter.céleri avec redis ne fonctionne pas bien

tâches sont les suivantes

  • facebook_service_handler
  • facebook_contents_handler
  • image_resize
  • save_contents_info

'facebook_service_handler' et tâches 'de facebook_contents_handler' utiliser api facebook ouvert avec la fonction urlopen.

Cela fonctionne bien lorsque les demandes d'urlopen ne sont pas nombreuses. (sous 4 ~ 5 fois) mais quand la requête urlopen est terminée, le 4 ~ 5, le travailleur ne fonctionne plus.

aussi, Lorsque le céleri est arrêté, je casse les redis et celeryd, et redémarre celeryd et redis. dernières tâches sont exécutées

tout corps m'aider à propos de ce problème ??

Je travaille sur le mac OS Lion.

Répondre

2

Idéalement, vous devriez avoir deux files d'attente différentes, une pour les E/S réseau (en utilisant eventlet, avec lequel vous pouvez "augmenter" plus de processus) et une pour les autres tâches (en utilisant le multitraitement). Si vous pensez que c'est compliqué, jetez un oeil à CELERYD_TASK_SOFT_TIME_LIMIT. J'ai eu des problèmes similaires lors de l'utilisation de urllib.open dans les tâches de céleri, car la connexion pourrait se bloquer et gâcher tout le système.

+0

Merci pour votre réponse !! J'ai résolu mon problème. En fait, c'était un problème stupide. Il provoqué par l'option de concurrence faible. Mais votre réponse est utile pour me rendre plus intelligent. Merci! ^^ – shchoi

Questions connexes