| 
					
				 | 
			
			
				@@ -6,6 +6,7 @@ import asyncio 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import datetime 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import traceback 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import threading 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from concurrent.futures import ThreadPoolExecutor, as_completed 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from tasks.history_task import historyContentIdTask 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -64,11 +65,11 @@ async def main(publish_flag): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     await history_content_id_task.deal(publish_flag) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-def run_thread(publish_flag, sleep_seconds): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def run_thread(publish_flag, sleep_seconds, stop_flag): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     执行进程 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    while True: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    while not stop_flag.is_set(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         loop = asyncio.new_event_loop() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         asyncio.set_event_loop(loop) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         loop.run_until_complete(main(publish_flag=publish_flag)) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -77,23 +78,26 @@ def run_thread(publish_flag, sleep_seconds): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         logging( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             code="history0004", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             info="History task finished", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            alg="run_thread2" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            alg="run_thread" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        print("{}    请求执行完成, 等待{}s".format(now_str, sleep_seconds)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        print("Task{}--{}    请求执行完成, 等待{}s".format(publish_flag, now_str, sleep_seconds)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         time.sleep(sleep_seconds) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if __name__ == '__main__': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const = HistoryContentIdTaskConst() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    stop_event = threading.Event() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # 启动两个线程,分别执行两个函数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     with ThreadPoolExecutor(max_workers=2) as executor: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         futures = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            executor.submit(run_thread, const.NEED_PUBLISH, const.NEED_PUBLISH_WAIT_TIME), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            executor.submit(run_thread, const.DO_NOT_NEED_PUBLISH, const.DO_NOT_NEED_PUBLISH_WAIT_TIME) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            executor.submit(run_thread, const.NEED_PUBLISH, const.NEED_PUBLISH_WAIT_TIME, stop_event), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            executor.submit(run_thread, const.DO_NOT_NEED_PUBLISH, const.DO_NOT_NEED_PUBLISH_WAIT_TIME, stop_event) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for future in as_completed(futures): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 future.result() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         except KeyboardInterrupt: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            print("Stopping all threads...") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            print("Stopping all threads...") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            stop_event.set() 
			 |