38 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.5 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(is_running=True).exclude(id__in=Equipment.objects.filter(indicate_mgroup_running__isnull=False, mgroup__isnull=False).values_list('mgroup', flat=True)).update(is_running=True)
 | 
						|
    # 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"]) |