Скрипты Kafka Producer и Consumer для автоматического запуска - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть проект Django, и я использую pykafka. Внутри проекта я создал два файла с именами продюсером. Я должен изменить каталог на папку, где они присутствуют, а затем отдельно запустить python provider.py и consumer.py из терминала. Все отлично работает.

Я развернул свой проект в Интернете, и веб-приложение запущено, поэтому я хочу автоматически запускать производителя и потребителя в фоновом режиме. Как мне это сделать?

РЕДАКТИРОВАТЬ 1: На моем производственном сервере я сделал nohup python name_of_python_script.py &, чтобы выполнить его в фоновом режиме. Это работает в настоящее время, но это хорошее решение?

1 Ответ

0 голосов
/ 01 ноября 2018

Вы можете создать системный сервис MyKafkaConsumer.service в /etc/systemd/system со следующим содержимым:

[Unit]
Description=A Kafka Consumer written in Python
After=network.target # include any other pre-requisites 

[Service]
Type=simple
User=your_user
Group=your_user_group
WorkingDirectory=/path/to/your/consumer
ExecStart=python consumer.py
TimeoutStopSec=180
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target 

Чтобы запустить службу (и настроить ее для запуска при загрузке), вы должны запустить

systemctl enable MyKafkaConsumer.service
systemctl start MyKafkaConsumer.service

Чтобы проверить его статус:

systemctl status MyKafkaConsumer

А чтобы посмотреть логи:

journactl -u MyKafkaConsumer -f

(или если вы хотите увидеть последние 100 строк)

journalctl -u MyKafkaConsumer -n 100

Вам необходимо создать аналогичную услугу и для вашего производителя.

Существует множество вариантов системных служб. Вы можете обратиться к этой статье , если вам нужны дальнейшие разъяснения. Не должно быть трудно найти руководства и дополнительные материалы в Интернете, хотя.

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