2011-05-09 3 views
0

Je prévois utiliser Céleri pour traiter les demandes de service Web entrantes. Je comprends que le céleri est principalement utilisé pour traiter des tâches asynchrones. Cependant le céleri a beaucoup de caractéristiques que j'aime et pourrait bénéficier de mon projet - priorités, limites de taux, architecture distribuée etc.Services Web + Céleri

Je suis juste en train de lutter avec le design. Je voudrais avoir un service Web qui crée et démarre la tâche qui appellera les sous-tâches. La tâche d'origine nécessite des résultats des sous-tâches, puis lorsque la tâche d'origine est terminée, je renvoie le résultat au client via le service Web. Je sais que je pourrais appeler des tâches de manière synchrone mais que ce n'est pas une bonne pratique.

Merci,

Répondre

1

La scatter/gather chose semble que cela pourrait être une carte/réduire l'emploi. Si la partie mapreduce est importante pour vous, optez pour un framework spécialisé tel que Disco ou Hadoop. Sinon, vous avez besoin d'une sorte de signal d'achèvement, de sorte que vous pouvez envoyer une réponse à l'utilisateur une fois que toutes les sous-tâches sont terminées ou annulées. Par exemple, un compteur du nombre de sous-tâches à terminer. La sous-tâche qui met le compteur à zéro peut pousser une nouvelle tâche de réponse qui pousse une réponse à l'utilisateur et ferme le cercle.

Regardez Mongrel2, une infrastructure Web asynchrone, pour un exemple de ce type de chemin de requête circulaire.