77 lines
3.1 KiB
Python
77 lines
3.1 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_hart_service = None
|
|
|
|
mb_tank_service_enable = False
|
|
mb_pump_service_enable = False
|
|
mb_hart_service_enable = False
|
|
|
|
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, MbHartService
|
|
# включение/выключение сервисов
|
|
_en = os.getenv('ENABLE_MB_TANK_SERVICE', '1')
|
|
LogsServiceConfig.mb_tank_service_enable = int(_en) != 0
|
|
|
|
_en = os.getenv('ENABLE_MB_PUMP_SERVICE', '1')
|
|
LogsServiceConfig.mb_pump_service_enable = int(_en) != 0
|
|
|
|
_en = os.getenv('ENABLE_MB_HART_SERVICE', '1')
|
|
LogsServiceConfig.mb_hart_service_enable = int(_en) != 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_hart_service_enable:
|
|
LogsServiceConfig.mb_hart_service = MbHartService(ip_addr=os.getenv('MB_HART_ADDRESS'),
|
|
port=int(os.getenv('MB_HART_PORT')),
|
|
scan_rate=int(os.getenv('MB_HART_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()
|
|
|
|
if LogsServiceConfig.mb_hart_service_enable:
|
|
if DEBUG:
|
|
print('Creating service MbHartService...')
|
|
LogsServiceConfig.mb_hart_service.start()
|
|
|
|
return True
|
|
|
|
|