| 
					
				 | 
			
			
				@@ -205,6 +205,32 @@ class historyContentIdTask(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             trace_id=trace_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    async def roll_back_content_status_when_fails(self, process_times, trace_id): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        处理失败,回滚至初始状态,处理次数加 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :param process_times: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :param trace_id: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :return: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        update_article_sql = f""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            UPDATE {self.article_match_video_table} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            SET 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                content_status = %s,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                content_status_update_time = %s, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                process_times = %s 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            WHERE trace_id = %s and content_status = %s; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        await self.mysql_client.async_insert( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sql=update_article_sql, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            params=( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                self.TASK_INIT_STATUS, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                int(time.time()), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                process_times + 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                trace_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                self.TASK_PROCESSING_STATUS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     async def process_task(self, params): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         异步执行 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -219,7 +245,7 @@ class historyContentIdTask(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         download_videos = await self.get_video_list(content_id=content_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         # time.sleep(3) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if download_videos: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            # 把状态修改为 4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            # 修改状态为执行状态,获取该任务的锁 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             affected_rows = await self.update_content_status( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 trace_id=trace_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 new_content_status=self.TASK_PROCESSING_STATUS, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -228,13 +254,24 @@ class historyContentIdTask(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if affected_rows == 0: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 print("修改行数为 0,多个进程抢占同一个 task, 抢占失败,进程退出") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            kimi_title = await self.get_kimi_title(content_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            await self.publish_videos_to_pq( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                flow_pool_level=flow_pool_level, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                kimi_title=kimi_title, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                gh_id=gh_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                kimi_title = await self.get_kimi_title(content_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                await self.publish_videos_to_pq( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    flow_pool_level=flow_pool_level, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    kimi_title=kimi_title, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    gh_id=gh_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    trace_id=trace_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    download_videos=download_videos, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    process_times=process_times 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            except Exception as e: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                logging( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    code="5003", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    info="history task 在发布的时候出现异常, error = {}".format(e), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    trace_id=trace_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            await self.roll_back_content_status_when_fails( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 trace_id=trace_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                download_videos=download_videos, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 process_times=process_times 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         else: 
			 |