61 lines
2.4 KiB
Python
61 lines
2.4 KiB
Python
import os
|
|
from django.apps import AppConfig
|
|
from ospaz_site.settings import DEBUG
|
|
|
|
_is_ready = False
|
|
|
|
|
|
class LogsServiceConfig(AppConfig):
|
|
default_auto_field = 'django.db.models.BigAutoField'
|
|
name = 'logs_service'
|
|
|
|
mb_tank_service = None
|
|
mb_pump_service = None
|
|
|
|
mb_tank_service_enable = True
|
|
mb_pump_service_enable = True
|
|
|
|
def ready(self):
|
|
# защита от двойного запуска
|
|
if os.environ.get('RUN_MAIN', None) == 'true':
|
|
return
|
|
print(f"Running logger service in process with pid={os.getpid()}")
|
|
|
|
from .services import MbTankService, MbPumpService
|
|
# включение/выключение сервисов
|
|
mb_tank_service_enable = os.getenv('ENABLE_MB_TANK_SERVICE', '1')
|
|
LogsServiceConfig.mb_tank_service_enable = int(mb_tank_service_enable) != 0
|
|
|
|
mb_pump_service_enable = os.getenv('ENABLE_MB_PUMP_SERVICE', '1')
|
|
LogsServiceConfig.mb_pump_service_enable = int(mb_pump_service_enable) != 0
|
|
|
|
save_days = int(os.getenv('LOGGER_SAVE_DAYS'))
|
|
|
|
# создание сервисов
|
|
if LogsServiceConfig.mb_tank_service_enable:
|
|
LogsServiceConfig.mb_tank_service = MbTankService(ip_addr=os.getenv('MB_TANK_ADDRESS'),
|
|
port=int(os.getenv('MB_TANK_PORT')),
|
|
scan_rate=int(os.getenv('MB_TANK_SCAN_RATE_MS')),
|
|
save_days=save_days)
|
|
|
|
if LogsServiceConfig.mb_pump_service_enable:
|
|
LogsServiceConfig.mb_pump_service = MbPumpService(ip_addr=os.getenv('MB_PUMP_ADDRESS'),
|
|
port=int(os.getenv('MB_PUMP_PORT')),
|
|
scan_rate=int(os.getenv('MB_PUMP_SCAN_RATE_MS')),
|
|
save_days=save_days)
|
|
|
|
# запуск сервисов
|
|
if LogsServiceConfig.mb_tank_service_enable:
|
|
if DEBUG:
|
|
print('Creating service MbTankService...')
|
|
LogsServiceConfig.mb_tank_service.start()
|
|
|
|
if LogsServiceConfig.mb_pump_service_enable:
|
|
if DEBUG:
|
|
print('Creating service MbPumpService...')
|
|
LogsServiceConfig.mb_pump_service.start()
|
|
|
|
return True
|
|
|
|
|