# 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_eq_rs, get_eq_rs from apps.mtm.models import Mgroup @shared_task(base=CustomTask) def check_equipment_offline(seconds=30): """监测设备是否掉线(根据测点采集)及工段是否运行 监测设备是否掉线 """ Mgroup.objects.filter(equip_mgroup__isnull=True, equip_mgroup__indicate_mgroup_running__isnull=True).update(is_running=False) 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_eq_rs(equip.id) if (now - rs['running_state_timex']).total_seconds() > seconds: set_eq_rs(equip.id, now, Equipment.OFFLINE)