| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- # -*- coding: utf-8 -*-
- """
- -------------------------------------------------
- File Name: proxyScheduler
- Description :
- Author : JHao
- date: 2019/8/5
- -------------------------------------------------
- Change Activity:
- 2019/8/5: proxyScheduler
- -------------------------------------------------
- """
- __author__ = 'JHao'
- from apscheduler.schedulers.blocking import BlockingScheduler
- from util.six import Queue
- from helper.fetch import Fetcher
- from helper.check import Checker
- from helper.proxy import Proxy
- from handler.logHandler import LogHandler
- from handler.proxyHandler import ProxyHandler
- def doProxyFetch():
- proxy_queue = Queue()
- fetcher = Fetcher()
- for proxy in fetcher.fetch():
- proxy_queue.put(Proxy(proxy).to_json)
- thread_list = list()
- for index in range(20):
- thread_list.append(Checker("raw", proxy_queue, "thread_%s" % str(index).zfill(2)))
- for thread in thread_list:
- thread.start()
- for thread in thread_list:
- thread.join()
- def doProxyCheck():
- proxy_queue = Queue()
- proxy_handler = ProxyHandler()
- for proxy in proxy_handler.getAll():
- proxy_queue.put(proxy.to_json)
- # class DoFetchProxy(ProxyManager):
- # """ fetch proxy"""
- #
- # def __init__(self):
- # ProxyManager.__init__(self)
- # self.log = LogHandler('fetch_proxy')
- #
- # def main(self):
- # self.log.info("start fetch proxy")
- # self.fetch()
- # self.log.info("finish fetch proxy")
- #
- #
- # def rawProxyScheduler():
- # DoFetchProxy().main()
- # doRawProxyCheck()
- #
- #
- # def usefulProxyScheduler():
- # doUsefulProxyCheck()
- def runScheduler():
- doProxyFetch()
- scheduler_log = LogHandler("scheduler")
- scheduler = BlockingScheduler(logger=scheduler_log)
- scheduler.add_job(doProxyFetch, 'interval', minutes=5, id="proxy_fetch", name="proxy采集")
- # scheduler.add_job(usefulProxyScheduler, 'interval', minutes=1, id="useful_proxy_check", name="useful_proxy定时检查")
- scheduler.start()
- if __name__ == '__main__':
- runScheduler()
|