|
@@ -18,7 +18,7 @@ class Scheduler():
|
|
"""
|
|
"""
|
|
scheduler
|
|
scheduler
|
|
"""
|
|
"""
|
|
-
|
|
|
|
|
|
+
|
|
def run_tester(self, cycle=CYCLE_TESTER):
|
|
def run_tester(self, cycle=CYCLE_TESTER):
|
|
"""
|
|
"""
|
|
run tester
|
|
run tester
|
|
@@ -33,7 +33,7 @@ class Scheduler():
|
|
tester.run()
|
|
tester.run()
|
|
loop += 1
|
|
loop += 1
|
|
time.sleep(cycle)
|
|
time.sleep(cycle)
|
|
-
|
|
|
|
|
|
+
|
|
def run_getter(self, cycle=CYCLE_GETTER):
|
|
def run_getter(self, cycle=CYCLE_GETTER):
|
|
"""
|
|
"""
|
|
run getter
|
|
run getter
|
|
@@ -48,7 +48,7 @@ class Scheduler():
|
|
getter.run()
|
|
getter.run()
|
|
loop += 1
|
|
loop += 1
|
|
time.sleep(cycle)
|
|
time.sleep(cycle)
|
|
-
|
|
|
|
|
|
+
|
|
def run_server(self):
|
|
def run_server(self):
|
|
"""
|
|
"""
|
|
run server for api
|
|
run server for api
|
|
@@ -57,42 +57,48 @@ class Scheduler():
|
|
logger.info('server not enabled, exit')
|
|
logger.info('server not enabled, exit')
|
|
return
|
|
return
|
|
app.run(host=API_HOST, port=API_PORT, threaded=API_THREADED)
|
|
app.run(host=API_HOST, port=API_PORT, threaded=API_THREADED)
|
|
-
|
|
|
|
|
|
+
|
|
def run(self):
|
|
def run(self):
|
|
global tester_process, getter_process, server_process
|
|
global tester_process, getter_process, server_process
|
|
try:
|
|
try:
|
|
logger.info('starting proxypool...')
|
|
logger.info('starting proxypool...')
|
|
if ENABLE_TESTER:
|
|
if ENABLE_TESTER:
|
|
- tester_process = multiprocessing.Process(target=self.run_tester)
|
|
|
|
|
|
+ tester_process = multiprocessing.Process(
|
|
|
|
+ target=self.run_tester)
|
|
logger.info(f'starting tester, pid {tester_process.pid}...')
|
|
logger.info(f'starting tester, pid {tester_process.pid}...')
|
|
tester_process.start()
|
|
tester_process.start()
|
|
-
|
|
|
|
|
|
+
|
|
if ENABLE_GETTER:
|
|
if ENABLE_GETTER:
|
|
- getter_process = multiprocessing.Process(target=self.run_getter)
|
|
|
|
|
|
+ getter_process = multiprocessing.Process(
|
|
|
|
+ target=self.run_getter)
|
|
logger.info(f'starting getter, pid{getter_process.pid}...')
|
|
logger.info(f'starting getter, pid{getter_process.pid}...')
|
|
getter_process.start()
|
|
getter_process.start()
|
|
-
|
|
|
|
|
|
+
|
|
if ENABLE_SERVER:
|
|
if ENABLE_SERVER:
|
|
- server_process = multiprocessing.Process(target=self.run_server)
|
|
|
|
|
|
+ server_process = multiprocessing.Process(
|
|
|
|
+ target=self.run_server)
|
|
logger.info(f'starting server, pid{server_process.pid}...')
|
|
logger.info(f'starting server, pid{server_process.pid}...')
|
|
server_process.start()
|
|
server_process.start()
|
|
-
|
|
|
|
- tester_process.join()
|
|
|
|
- getter_process.join()
|
|
|
|
- server_process.join()
|
|
|
|
|
|
+
|
|
|
|
+ tester_process and tester_process.join()
|
|
|
|
+ getter_process and getter_process.join()
|
|
|
|
+ server_process and server_process.join()
|
|
except KeyboardInterrupt:
|
|
except KeyboardInterrupt:
|
|
logger.info('received keyboard interrupt signal')
|
|
logger.info('received keyboard interrupt signal')
|
|
- tester_process.terminate()
|
|
|
|
- getter_process.terminate()
|
|
|
|
- server_process.terminate()
|
|
|
|
|
|
+ tester_process and tester_process.terminate()
|
|
|
|
+ getter_process and getter_process.terminate()
|
|
|
|
+ server_process and server_process.terminate()
|
|
finally:
|
|
finally:
|
|
# must call join method before calling is_alive
|
|
# must call join method before calling is_alive
|
|
- tester_process.join()
|
|
|
|
- getter_process.join()
|
|
|
|
- server_process.join()
|
|
|
|
- logger.info(f'tester is {"alive" if tester_process.is_alive() else "dead"}')
|
|
|
|
- logger.info(f'getter is {"alive" if getter_process.is_alive() else "dead"}')
|
|
|
|
- logger.info(f'server is {"alive" if server_process.is_alive() else "dead"}')
|
|
|
|
|
|
+ tester_process and tester_process.join()
|
|
|
|
+ getter_process and getter_process.join()
|
|
|
|
+ server_process and server_process.join()
|
|
|
|
+ logger.info(
|
|
|
|
+ f'tester is {"alive" if tester_process.is_alive() else "dead"}')
|
|
|
|
+ logger.info(
|
|
|
|
+ f'getter is {"alive" if getter_process.is_alive() else "dead"}')
|
|
|
|
+ logger.info(
|
|
|
|
+ f'server is {"alive" if server_process.is_alive() else "dead"}')
|
|
logger.info('proxy terminated')
|
|
logger.info('proxy terminated')
|
|
|
|
|
|
|
|
|