Jakie pakiety należy szukać w celu napisania demona Pythona i przetwarzania zadań? Co muszę zrobić dla demona Pythona?Demon usługi Job Python?
Odpowiedz
Twoje pytanie jest nieco dwuznaczne, ale jestem przy założeniu, znaczy chcesz napisać demona Pythona, który będzie przetwarzać zadania, które trafiają w kolejce. Jeśli nie, proszę powiedz tak bardzo. :-)
Słyszałem wiele wspaniałych rzeczy o Redis. Ludzie z github zbudowali resque jako demon przetwarzania zadań dla Ruby. Jeśli jesteś językiem elastycznym, możesz go po prostu użyć, ale jeśli nie, możesz emulować go w tak dużej lub małej głębi, jak chcesz, korzystając z redis jako systemu kolejki. W zależności od tego, jak jest to możliwe do zainstalowania i rozszerzenia, może to być naprawdę prosta rzecz do wdrożenia.
Inną opcją natknąłem po pewnym więcej googling jest redqueue. Wygląda na to, że może już zaimplementować większość kolejki zadań.
Jeśli używasz Django, można rozważyć projekt Celery. Jest to system kolejki zadań oparty na RabbitMQ, który jest kolejnym serwerem kolejkowania z doskonałymi recenzjami.
Jeśli chodzi o tworzenie demona w Pythonie, istnieje wiele opcji. Możesz spojrzeć na to page on activestate, co jest dobrym początkiem. Co więcej, możesz użyć python-daemon, aby zrobić to za ciebie. Ale jeśli użyjesz jednej z powyższych opcji lub beanstalkd zgodnie z poleceniem mczepiel, prawdopodobnie nie będziesz musiał uruchamiać procesu jako demon.
Jestem całkiem zadowolony z beanstalkd, który ma bibliotek klienta dostępne w różnych językach:
Daemon: http://kr.github.com/beanstalkd/
Python biblioteki klienta: http://code.google.com/p/pybeanstalk/
mam niedawno (w tym tygodniu) zaimplementował kolejkę w RabbitMQ z demonem Pythona, pobierającym informacje i przechowującym je w bazie danych (przy użyciu Django ORM). Demon ma bufor pośredni, więc będzie trochę czekać i zapisywać w bazie danych partiami, zamiast pisać za każdym razem, gdy pojawi się mała wiadomość.
Zrobiłem integracji z kolejki stosując ten mały flopsy moduł, który jest łatwy do skonfigurowania. Jedyny problem, jaki mam, to móc ustawić limit czasu oczekiwania na wiadomość, ponieważ moduł nie ma do tego jasnego sposobu. Po chwili grania w interaktywną powłokę i zrobieniu kilku dir()
udaje mi się dostać do obiektu socket
i ustawić limit czasu.
Rozważam również Celery, ale wydaje się, że bardziej koncentruję się na wewnętrznym użyciu RabbitMQ, aby umożliwić uruchamianie zadań (okresowo lub asynchronicznie), co więcej, używając kolejki do komunikacji z innymi systemami. W naszym przypadku kolejka może być zasilana zarówno przez systemy Python, jak i Ruby.
Po zakończeniu procesu, wprowadziłem pewne poprawki, aby umożliwić uruchamianie go jako demona (głównie przechowywanie standardowego wyjścia do pliku w celu umożliwienia łatwego logowania), a następnie utworzyć skrypt bash, który uruchamia polecenie start-stop-daemon . I już po mniej więcej ten schema odkryłem python-daemon tylko około jednego dnia późno, więc po zakończeniu pracy nie ma sensu ponowne go, ale może to ma większy sens dla projektu Pythona.
- 1. skrypt Pythona jako usługi Linux/demon
- 2. Efektywny demon Pythona
- 3. PHP Demon/środowisko robocze
- 4. Problemy z selera demon
- 5. niezainicjowany stała Opóźnione :: Job
- 6. Cron Job in symfony2
- 7. Cron Job w Laravel
- 8. Cron Job $ _SERVER issue
- 9. Executor i demon w Javie
- 10. Argumenty polecenia usługi Python Service
- 11. Scrapy crawler in Cron job
- 12. Katalog roboczy PowerShell Start-Job
- 13. Demon apache commons Błąd "Nie powiodło się tworzenie języka Java"
- 14. Demon Monita - błąd połączenia z demonem monitora
- 15. Uruchom konsolę Java jako demon (tło)
- 16. Demon kontra Upstart dla skryptu Pythona
- 17. gniazdo adb nie działa i demon
- 18. XAMPP: Kolejny demon serwera sieciowego już działa?
- 19. Przechodząc Python List do usługi WCF
- 20. Powershell start-job, wait-job, wątek hosta nigdy nie kończy się po uruchomieniu z ASP.NET IIS
- 21. Job DSL do utworzenia zadania typu "Pipeline"
- 22. Magento cron job and cron_scheduler table
- 23. SQL Server Agent Job - Exists następnie Drop?
- 24. Scala: Stwórz ogólną pracę Quartz Job
- 25. Cron Job in play framework 2.0
- 26. Przekazywanie tablicy do zadania Get-Job
- 27. Jak wywołać Start-Job, który zależy od funkcji w tym samym module powershell, co funkcja wywołująca Start-Job?
- 28. uWSGI działa jako proces, ale nie jako demon
- 29. Działający demon z exec-maven-plugin omijający `IllegalThreadStateException`
- 30. ustawienie NODE_ENV dla node.js + expressjs aplikację jako demon pod Ubuntu
Widziałem python-daemona, czy jest wystarczająco stabilny? – Timmy
Wierzę, że tak, ale nie mam czasu, aby przeczytać jego kod lub cokolwiek, więc nie mogę być pewny. – Benson