cron.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. """
  4. demeter web
  5. name:admin.py
  6. author:rabin
  7. """
  8. import time
  9. from demeter.core import *
  10. from gevent import monkey; monkey.patch_socket()
  11. import gevent
  12. from pic import pic
  13. from demeter.mqtt import *
  14. # 处理定时命令、周期命令、条件控制、消息、设备状态等
  15. timeSleep = 10
  16. # 更改设备状态(离线)
  17. def device():
  18. while 1:
  19. model = Demeter.model('device_info')
  20. cur = Demeter.time() - 1800
  21. model.cdate.assgin(cur, '<=')
  22. model.status = True
  23. data = model.select()
  24. for v in data:
  25. model.id = v['id']
  26. if v['hardware_type'] == 5:
  27. model.update(value='0', status=False)
  28. elif v['hardware_type'] != 7 and v['hardware_type'] != 6:
  29. model.update(status=False)
  30. gevent.sleep(60)
  31. def savePic():
  32. while 1:
  33. pic()
  34. gevent.sleep(1800)
  35. # 同步时间,24小时同步一次
  36. def timeSync():
  37. while 1:
  38. pub = Pub()
  39. key = 'time/bh'
  40. value = Demeter.date(Demeter.time())
  41. pub.push(key, value)
  42. gevent.sleep(3600*24)
  43. def handle():
  44. gevent.joinall([
  45. gevent.spawn(device),
  46. gevent.spawn(savePic),
  47. gevent.spawn(timeSync),
  48. ])
  49. handle()