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