9
votes

Démon de service de travail Python?

Quels paquets dois-je regarder pour écrire un démon python et traiter des emplois? En outre, que dois-je faire pour un démon python?


0 commentaires

3 Réponses :


2
votes

Votre question est un peu ambiguë, mais je suppose que vous voulez dire que vous souhaitez écrire un démon Python qui traitera des emplois qui se lancent dans une file d'attente. Sinon, veuillez en dire autant. : -)

J'ai entendu beaucoup de bonnes choses sur Redis. Les gens de GitHub construit RÉFLE en tant que démon de traitement d'emploi pour RUBY. Si vous êtes une langue flexible, vous pouvez simplement l'utiliser, mais si vous n'êtes pas, vous pouvez l'imiter autant ou aussi peu que vous aimez faire l'utilisation de Redis comme système de file d'attente. En fonction de la pelotyable et de l'extensibilité extensible, cela pourrait être une chose très simple à mettre en œuvre.

Une autre option que j'ai couru après plus d'autres googling est RedQueue . On dirait que cela pourrait déjà implémenter la majeure partie d'une file d'attente d'emploi.

Si vous utilisez Django, vous voudrez peut-être envisager le céleri Projet. C'est un système de file d'attente de travail basé sur la Rabbitmq qui est un autre serveur de file d'attente avec d'excellents critiques.

En ce qui concerne la création d'un démon dans Python, il existe un certain nombre d'options. Vous pouvez consulter ce page sur Activerestate , qui est un bon début. Mieux encore, vous pouvez utiliser Python-Daemon pour tout faire pour vous. Mais si vous utilisez l'une des options ci-dessus ou de BeansTalkd comme recommandé par Mczepiel, vous n'aurez probablement pas à faire fonctionner votre processus sous forme de démon.


2 commentaires

J'ai vu python-démon, est-ce assez stable?


Je le crois, mais je n'ai pas pris le temps de lire son code ni quoi que ce soit, je ne peux pas être sûr.



3
votes

Je suis assez heureux avec BeanStalkd, qui dispose de bibliothèques client disponibles dans différentes langues:

Démon: http://kr.github.com/beanstalkd/

Bibliothèque client Python: http://code.google.com/p/pybeanstalk/


0 commentaires

1
votes

J'ai récemment mis en place une file d'attente à Rabbitmq avec un démon python extrayant les informations et le stocker sur une base de données (à l'aide de Django Orm). Le démon a un tampon intermédiaire afin d'attendre un peu et d'écrire dans la base de données en lots, au lieu d'écrire chaque fois qu'un petit message arrive.

J'ai fait l'intégration avec la file d'attente à l'aide de ce petit Flopsy module, qui est facile à configurer. Le seul problème que je dois être capable de configurer un délai d'attente pour attendre un message, car le module n'a pas de manière claire de cela. Après un moment en jouant avec la coque interactive et en faisant quelques dir () , je parviens à accéder à l'objet et configurez le délai d'attente.

J'ai considéré aussi céleri , mais semble être plus concentré sur l'utilisation de la rabbbitmq pour vous permettre de lancer des tâches (périodiquement ou asynchrones), plus qu'utilisez une file d'attente pour communiquer avec d'autres systèmes. Dans notre cas, la file d'attente peut être alimentée à la fois par Python Systems et Ruby.

Une fois que j'ai terminé le processus, j'ai effectué des ajustements pour permettre de l'exécuter en tant que daemon (en stockant principalement la sortie standard à un fichier pour permettre une journalisation facile), puis créer un script bash qui lancent un Commande de démarrage-daemon . J'ai suivi plus ou moins cette Schema J'ai découvert Python-Daemon à peu près un jour de retard, alors après le travail terminé. Cela ne fait aucun sens, mais peut-être que cela a plus de sens pour un projet Python.


0 commentaires