| 
														
															@@ -205,6 +205,32 @@ class historyContentIdTask(object): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             trace_id=trace_id 
														 | 
														
														 | 
														
															             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): 
														 | 
														
														 | 
														
															     async def process_task(self, params): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         """ 
														 | 
														
														 | 
														
															         """ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         异步执行 
														 | 
														
														 | 
														
															         异步执行 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -219,7 +245,7 @@ class historyContentIdTask(object): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         download_videos = await self.get_video_list(content_id=content_id) 
														 | 
														
														 | 
														
															         download_videos = await self.get_video_list(content_id=content_id) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         # time.sleep(3) 
														 | 
														
														 | 
														
															         # time.sleep(3) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if download_videos: 
														 | 
														
														 | 
														
															         if download_videos: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            # 把状态修改为 4 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            # 修改状态为执行状态,获取该任务的锁 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             affected_rows = await self.update_content_status( 
														 | 
														
														 | 
														
															             affected_rows = await self.update_content_status( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 trace_id=trace_id, 
														 | 
														
														 | 
														
															                 trace_id=trace_id, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 new_content_status=self.TASK_PROCESSING_STATUS, 
														 | 
														
														 | 
														
															                 new_content_status=self.TASK_PROCESSING_STATUS, 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -228,13 +254,24 @@ class historyContentIdTask(object): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if affected_rows == 0: 
														 | 
														
														 | 
														
															             if affected_rows == 0: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 print("修改行数为 0,多个进程抢占同一个 task, 抢占失败,进程退出") 
														 | 
														
														 | 
														
															                 print("修改行数为 0,多个进程抢占同一个 task, 抢占失败,进程退出") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 return 
														 | 
														
														 | 
														
															                 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, 
														 | 
														
														 | 
														
															                 trace_id=trace_id, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                download_videos=download_videos, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 process_times=process_times 
														 | 
														
														 | 
														
															                 process_times=process_times 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             ) 
														 | 
														
														 | 
														
															             ) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         else: 
														 | 
														
														 | 
														
															         else: 
														 |