23 lines
960 B
Python
23 lines
960 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_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) |