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 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) mb_pump_service_enable = os.getenv('ENABLE_MB_PUMP_SERVICE', '1') LogsServiceConfig.mb_pump_service_enable = int(mb_pump_service_enable) 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