Принцип взаимодействия сервисов

Для полноценной работы системы, необходим ряд сервисов/ПО, которые поддерживают определённый функционал системы. Ниже мы опишем, какие сервисы за что отвечают.



  • DATABASE - сервер баз данных, на основе MySQL, PgSQL или MSSQL. Сервер хранит данные системы, заявки, пользователей, группы и много другой информации. Данный сервис является критическим для работы системы.
  • REDIS - сервер очереди сообщений, необходим для отправки всплывающих PUSH-уведомлений в веб-браузере и работе чата. ZENLIX отправляет сообщения в REDIS.
  • NodeJS - сервер который подписан на сообщения REDIS и обслуживает работу всплывающих сообщений в веб-браузере и работе чата.
  • CRON - сервис, который запускает внутренний планировщик задач ZENLIX, для переноса заявок в архив, создании запланированных заявок, отправлении напоминаний о просроченных заявках, удалении старых заявок, переносе заявок в архив и т.д.
  • Supervisor - сервис который обрабатывает очередь задач/сообщений системы ZENLIX. Отвечает за отправку сообщений (email/sms, pushbullet) и других задач, которые требуют времени выполнения. Благодаря данному сервису происходит обработка отправки длительных сообщений в фоновом режиме.


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

$ ps ax | grep <SERVICE NAME>

Для поддержки сервиса NodeJS, используется вспомогательный сервис pm2. Доступность активного nodejs, можно увидеть с помощью команды:

$ pm2 status