factory/apps/em/tasks.py

24 lines
901 B
Python

# Create your tasks here
from __future__ import absolute_import, unicode_literals
from apps.utils.tasks import CustomTask
from celery import shared_task
from django.utils.timezone import localtime
from apps.em.models import Equipment
from apps.em.services import set_equip_rs, get_equip_rs
@shared_task(base=CustomTask)
def check_equipment_offline(seconds=30):
"""监测设备是否掉线(根据测点采集)
监测设备是否掉线
"""
equips = Equipment.objects.filter(mp_ep_monitored__is_rep_ep_running_state=True, mp_ep_monitored__enabled=True)
now = localtime()
for equip in equips:
rs = get_equip_rs(equip.id)
if (now - rs['running_state_timex']).total_seconds() > seconds:
to_db = False
if equip.running_state != Equipment.OFFLINE:
to_db = True
set_equip_rs(equip.id, now, Equipment.OFFLINE, to_db)