| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- # -*- 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 apscheduler.executors.pool import ProcessPoolExecutor
- from util.six import Queue
- from helper.proxy import Proxy
- from helper.fetch import runFetcher
- from helper.check import runChecker
- from handler.logHandler import LogHandler
- from handler.proxyHandler import ProxyHandler
- from handler.configHandler import ConfigHandler
- def runProxyFetch():
- proxy_queue = Queue()
- for proxy in runFetcher():
- proxy_queue.put(Proxy(proxy).to_json)
- runChecker("raw", proxy_queue)
- def runProxyCheck():
- proxy_queue = Queue()
- for proxy in ProxyHandler().getAll():
- proxy_queue.put(proxy.to_json)
- runChecker("use", proxy_queue)
- def runScheduler():
- runProxyFetch()
- timezone = ConfigHandler().timezone
- scheduler_log = LogHandler("scheduler")
- scheduler = BlockingScheduler(logger=scheduler_log, timezone=timezone)
- scheduler.add_job(runProxyFetch, 'interval', minutes=4, id="proxy_fetch", name="proxy采集")
- scheduler.add_job(runProxyCheck, 'interval', minutes=2, id="proxy_check", name="proxy检查")
- executors = {
- 'default': {'type': 'threadpool', 'max_workers': 20},
- 'processpool': ProcessPoolExecutor(max_workers=5)
- }
- job_defaults = {
- 'coalesce': False,
- 'max_instances': 10
- }
- scheduler.configure(executors=executors, job_defaults=job_defaults, timezone=timezone)
- scheduler.start()
- if __name__ == '__main__':
- runScheduler()
|