cron.py 865 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. # -*- coding: utf-8 -*-
  2. """
  3. demeter web
  4. name:cron.py
  5. author:rabin
  6. """
  7. import time
  8. from demeter.core import *
  9. from multiprocessing import Process
  10. from gevent import monkey; monkey.patch_socket()
  11. import gevent
  12. timeSleep = 10
  13. def run(site, product):
  14. site['product'] = product
  15. service = Demeter.service(site['name'])
  16. service.init(site)
  17. service.start()
  18. def handle(data):
  19. task = []
  20. product = Demeter.service('product')
  21. for v in data:
  22. product.status(v['id'], 2)
  23. site = product.getSite(v['site_id'])
  24. task.append(gevent.spawn(run, site, [v]))
  25. gevent.joinall(task)
  26. def start(number = 1):
  27. while 1:
  28. product = Demeter.service('product')
  29. data = product.get()
  30. task = []
  31. i = 0
  32. if data:
  33. for v in data:
  34. i += 1
  35. task.append(v)
  36. if i == number:
  37. p = Process(target=handle, args=(task,))
  38. p.start()
  39. task = []
  40. i = 0
  41. start()