24 lines
		
	
	
		
			901 B
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			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) |