Quali pacchetti devo considerare per scrivere un demone python ed elaborare i lavori? Inoltre, cosa devo fare per un demone python?Daemon del servizio lavoro Python?
risposta
La tua domanda è un po 'ambigua, ma suppongo che intendi che vorresti scrivere un demone python che elaborerà i lavori che vengono lanciati in una coda. In caso contrario, si prega di dire tanto. :-)
Ho sentito un sacco di grandi cose sui redis. I membri di github hanno creato resque come un demone di elaborazione dei processi per Ruby. Se sei flessibile per la lingua, puoi semplicemente usarlo, ma se non lo sei, puoi emularlo nel modo più o meno approfondito che ti piace usare come sistema di coda redis. A seconda di come è possibile collegarlo ed estendibile, questa potrebbe essere una cosa davvero semplice da implementare.
Un'altra opzione che ho trovato dopo un po 'di googling è redqueue. Sembra che potrebbe già implementare la maggior parte di una coda di lavoro.
Se si utilizza Django, è possibile prendere in considerazione il progetto Celery. È un sistema di coda di lavoro basato su RabbitMQ che è ancora un altro server di accodamento con recensioni eccellenti.
Per quanto riguarda la creazione di un demone in python, esistono numerose opzioni. Puoi guardare questo page on activestate, che è un buon inizio. Meglio ancora, è possibile utilizzare python-daemon per fare tutto per te. Ma se si utilizza una delle opzioni sopra o beanstalkd come raccomandato da mczepiel, probabilmente non si dovrà eseguire il processo come demone.
Sono abbastanza contento beanstalkd, che ha librerie client disponibili in varie lingue:
Daemon: http://kr.github.com/beanstalkd/
Python libreria client: http://code.google.com/p/pybeanstalk/
ho recentemente (questa settimana) implementato una coda in RabbitMQ con un demone python estraendo le informazioni e memorizzandole su un database (usando Django ORM). Il demone ha un buffer intermedio, quindi aspetterà un po 'e scriverà nel database in batch, invece di scrivere ogni volta che arriva un piccolo messaggio.
Ho effettuato l'integrazione con la coda utilizzando questo piccolo modulo flopsy, che è facile da configurare. L'unico problema che ho è di essere in grado di impostare un timeout per l'attesa di un messaggio, in quanto il modulo non ha un modo chiaro di farlo. Dopo un po 'di tempo con la shell interattiva e facendo alcuni dir()
, riesco a raggiungere l'oggetto socket
e impostare il timeout.
Ho considerato anche Celery, ma sembra essere più concentrato sull'utilizzo interno di un RabbitMQ per consentire di avviare attività (periodicamente o in modo asincrono), più che utilizzare una coda per comunicare con altri sistemi. Nel nostro caso, la coda può essere alimentata sia da sistemi Python che da quelli Ruby.
Una volta completato il processo, ho apportato alcune modifiche per consentire l'esecuzione come un daemon (principalmente memorizzando l'output standard in un file per consentire una registrazione facile) e quindi creare uno script bash che avvia un comando start-stop-daemon . Ho seguito più o meno questo schema Ho scoperto python-daemon quasi un giorno di ritardo, quindi dopo il lavoro non ha senso rivisitarlo, ma forse ha più senso per un progetto Python.
- 1. Python script come servizio Linux/daemon
- 2. Efficient Python Daemon
- 3. Connetti due daemon in python
- 4. Creazione del daemon python 2.7 con pep-3143
- 5. Argomenti del comando personalizzato del servizio Python
- 6. Python: esecuzione di processi daemon in Windows7
- 7. Python-daemon non uccide i suoi figli
- 8. Daemon vs Upstart per script python
- 9. Python 3.3.4: python-daemon-3K; Come usare il corridore
- 10. Come posso creare i thread del daemon?
- 11. start-stop-daemon e pitone
- 12. Come si configura un demone con python-daemon?
- 13. Thread daemon Java
- 14. Mantenimento della registrazione e/o stdout/stderr in Python Daemon
- 15. Python daemon non verrà eseguito in background su Ubuntu
- 16. Thread Daemon - Use case
- 17. Come avviare un daemon all'avvio del server in primavera
- 18. Processo daemon Android
- 19. Stop Erlang Daemon
- 20. Creazione Python daemon - oggetto 'modulo' non ha alcun attributo 'DaemonContext'
- 21. Che differenza fa quando imposto il thread python come Daemon
- 22. Strumento per la creazione di un servizio daemon Java su Linux
- 23. Passare i risultati a seconda del lavoro - python rq
- 24. Git Daemon Hang SO_KEEPALIVE
- 25. Jenkins: Impossibile connettersi al daemon Docker
- 26. JavaQuartz Persistenza del lavoro
- 27. Utilizzo del servizio OAuth Python con Google App Engine
- 28. Tempo di inattività durante il ricaricamento del daemon mod_wsgi?
- 29. Elemento daemon del plugin Maven Jetty non consentito qui
- 30. Daemon processo java - c'è una cosa del genere?
ho visto python-daemon, è già abbastanza stabile? – Timmy
Credo di sì, ma non ho avuto il tempo di leggere il suo codice o altro, quindi non posso esserne sicuro. – Benson