Я создал приложение для мониторинга удаленных объектов.Обмен сообщениями между Django и Twisted
Описание приложения: Twisted связывается с удаленными контроллерами, а затем сохраняет измеренные данные в базу данных через «adbapi». Django используется как веб-интерфейс.
Задача: Django использует модели для доступа к базе данных. Twisted использует необработанные SQL-запросы, генерирует предупреждения и другие операции перед сохранением. Я хочу переместить всю логику с Twisted на Django. Так что Twisted будет слоем между удаленными контроллерами и Django. Django будет использовать модели и сохранять измеренные данные, выполнять различные операции и так далее.
Вопрос: Лучший способ организовать связь между Twisted и Django? Двухсторонняя коммуникационная шина между ними. На данный момент у меня есть 3 варианта:
- Выполните http POST-запрос через getPage из twisted.web.client, а с другой стороны обработайте его Django.
- Используйте RabbitMQ и модуль pika как транспорт по витой стороне. Используйте Django-автономное приложение как демон на другой стороне.
Я считаю, что должно быть лучшее решение, чем мое предложение.
P.S .:
Это. С помощью очереди вы можете масштабировать это горизонтально и избегать жестких зависимостей. Мы очень часто используем очереди, чтобы общаться между Django, скрученными, графитированными, логарифмически, эластичным поиском и т. Д. «Сообщение для хранения, база данных для истории» –
Спасибо за ваш ответ. Кстати: хорошо ли использовать автономный скрипт Django в качестве демона? – zenio
Да, абсолютно. Для этого были предназначены команды управления Django. Просто убедитесь, что вы запускаете их под контролем или другим менеджером демонов. –