Лучшие практики для сценария Python с бесконечным циклом, который работает в Windows как служба - PullRequest
0 голосов
/ 09 октября 2018

У меня есть сценарий Python, который читает данные с сервера OPCDA и затем передает их в InfluxDB.

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

Я установил сценарий в качестве службы с использованием NSSM.Как лучше всего убедиться, что скрипт работает 24/7?Как избежать сбоев?Должен ли я демонизировать сценарий?

Заранее спасибо,

Bnjroos

1 Ответ

0 голосов
/ 09 октября 2018

Предлагаю хотя бы добавить логирование на уровне скрипта.Вы также можете использовать пользовательские коды выхода из python, чтобы NSSM знал, как сообщить об ошибке.Ваш сбой, вероятно, произошел бы при подключении к вашим службам, например, при отключении или чем-то еще, чтобы вы могли написать собственные исключения для перезапуска NSSM.Если он запускается каждые 5 секунд, вы, вероятно, очень скоро об этом узнаете.

Обеспечение доступности и предотвращение сбоев - это не просто инфраструктура, а ваш код, поэтому приведенные выше рекомендации.

Я считаю, что использование NSSM (для планирования и тому подобного) лучше, чем демонизация, поскольку вы в основном добавляете функциональность NSSM в свой сценарий и потенциально добавляете больше кода, который может дать сбой.

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