factory/apps/em/tasks.py

38 lines
1.4 KiB
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, shutdown_or_startup
from apps.mtm.models import Mgroup
@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)
equips = Equipment.objects.all()
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)
@shared_task(base=CustomTask)
def check_mgroup_running():
"""监测工段是否运行
"""
# 没有设备的工段直接干停
Mgroup.objects.filter(equip_mgroup__isnull=True, is_running=True).distinct().update(is_running=False)
# equips = Equipment.objects.filter(indicate_mgroup_running__isnull=False, mgroup__isnull=False)
# for equip in equips:
# rs = get_eq_rs(equip.id)
# if rs['running_state'] == Equipment.OFFLINE: # 如果掉线了不关心
# pass
# else:
# shutdown_or_startup(equip.id, rs["running_state_timex"], rs["running_state"])