scheduler.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. # -*- coding: utf-8 -*-
  2. """
  3. -------------------------------------------------
  4. File Name: proxyScheduler
  5. Description :
  6. Author : JHao
  7. date: 2019/8/5
  8. -------------------------------------------------
  9. Change Activity:
  10. 2019/8/5: proxyScheduler
  11. -------------------------------------------------
  12. """
  13. __author__ = 'JHao'
  14. from apscheduler.schedulers.blocking import BlockingScheduler
  15. from util.six import Queue
  16. from helper.fetch import Fetcher
  17. from helper.check import Checker
  18. from helper.proxy import Proxy
  19. from handler.logHandler import LogHandler
  20. from handler.proxyHandler import ProxyHandler
  21. def doProxyFetch():
  22. proxy_queue = Queue()
  23. fetcher = Fetcher()
  24. for proxy in fetcher.fetch():
  25. proxy_queue.put(Proxy(proxy).to_json)
  26. thread_list = list()
  27. for index in range(20):
  28. thread_list.append(Checker("raw", proxy_queue, "thread_%s" % str(index).zfill(2)))
  29. for thread in thread_list:
  30. thread.start()
  31. for thread in thread_list:
  32. thread.join()
  33. def doProxyCheck():
  34. proxy_queue = Queue()
  35. proxy_handler = ProxyHandler()
  36. for proxy in proxy_handler.getAll():
  37. proxy_queue.put(proxy.to_json)
  38. # class DoFetchProxy(ProxyManager):
  39. # """ fetch proxy"""
  40. #
  41. # def __init__(self):
  42. # ProxyManager.__init__(self)
  43. # self.log = LogHandler('fetch_proxy')
  44. #
  45. # def main(self):
  46. # self.log.info("start fetch proxy")
  47. # self.fetch()
  48. # self.log.info("finish fetch proxy")
  49. #
  50. #
  51. # def rawProxyScheduler():
  52. # DoFetchProxy().main()
  53. # doRawProxyCheck()
  54. #
  55. #
  56. # def usefulProxyScheduler():
  57. # doUsefulProxyCheck()
  58. def runScheduler():
  59. doProxyFetch()
  60. scheduler_log = LogHandler("scheduler")
  61. scheduler = BlockingScheduler(logger=scheduler_log)
  62. scheduler.add_job(doProxyFetch, 'interval', minutes=5, id="proxy_fetch", name="proxy采集")
  63. # scheduler.add_job(usefulProxyScheduler, 'interval', minutes=1, id="useful_proxy_check", name="useful_proxy定时检查")
  64. scheduler.start()
  65. if __name__ == '__main__':
  66. runScheduler()