Запустить демонизированный сервис с помощью пользовательской команды djangos manage.py? - PullRequest
1 голос
/ 08 июля 2010

В моем приложении django для многократного использования есть пользовательская команда, которую я хочу запустить демонизированный сервис и затем вернуть, оставив сервис запущенным.

Я реализовал свой сервис как простой класс с методом start. Когда вызывается start, он запускается в вечном цикле, спит в течение 10 секунд, затем с помощью формы django проверяет базу данных, настроенную в файле settings.py проектов, проверяет записи в данной папке.

Я хочу иметь возможность:

./manage.py startservice

который пинает мою службу и возвращает. Тогда в той же оболочке:

./manage.py runserver

и начните добавлять записи в определенной таблице базы данных, которые в течение 5 секунд отбираются службой, работающей в фоновом режиме, и обрабатываются.

Я смотрел на сельдерея для более основанного на очереди сообщений подхода, но он полагается на слишком много других вещей. Важно, чтобы все это повторяло шаблон приложения django для повторного использования.

Любые намеки или мысли?

Ответы [ 2 ]

2 голосов
/ 08 июля 2010

У меня есть начала библиотеки, django-initd, чтобы справиться с этим: см. проект на GitHub .

Django фактически содержит утилиту для процесса, чтобы демонизировать себя, в django.utils.daemonize моя библиотека заботится о запуске / завершении работы, регистрации и взаимодействии с командой управления. Мне было бы интересно узнать, полезно ли это вам.

0 голосов
/ 08 июля 2010

Почему вы хотите запустить сервис как отдельный процесс?

Запуск в потоке, в том же процессе, что и запуск сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...