up
This commit is contained in:
		@@ -39,7 +39,10 @@ class MasterService:
 | 
				
			|||||||
    async def create_workers(self):
 | 
					    async def create_workers(self):
 | 
				
			||||||
        while True:
 | 
					        while True:
 | 
				
			||||||
            video_params = await self.queue.get()
 | 
					            video_params = await self.queue.get()
 | 
				
			||||||
 | 
					            #TODO: позднее написать функцию для определения парсера автоматически
 | 
				
			||||||
            redis = RedisClient()
 | 
					            redis = RedisClient()
 | 
				
			||||||
 | 
					            # TODO: проверить что в редисе задача либо уже выполнена, т.е. сразу отдать ссылку, либо что она ранее была закончена с ошибкой
 | 
				
			||||||
 | 
					            #       и проверять словарь self.currently_underway, для надёжности
 | 
				
			||||||
            await redis.del_task_from_queue_and_add_to_tasks(task=video_params)
 | 
					            await redis.del_task_from_queue_and_add_to_tasks(task=video_params)
 | 
				
			||||||
            self.currently_underway[video_params['link']] = video_params
 | 
					            self.currently_underway[video_params['link']] = video_params
 | 
				
			||||||
            download_task = self.loop.run_in_executor(self.executor, partial(
 | 
					            download_task = self.loop.run_in_executor(self.executor, partial(
 | 
				
			||||||
@@ -50,6 +53,11 @@ class MasterService:
 | 
				
			|||||||
            result = await download_task
 | 
					            result = await download_task
 | 
				
			||||||
            await redis.del_task_from_tasks_and_add_to_task_done(task={"link": video_params["link"], "result": result})
 | 
					            await redis.del_task_from_tasks_and_add_to_task_done(task={"link": video_params["link"], "result": result})
 | 
				
			||||||
            # TODO process result
 | 
					            # TODO process result
 | 
				
			||||||
 | 
					            '''
 | 
				
			||||||
 | 
					            Result.Done \ Result.Exist - уведомить что задача выполнена, и отослать во вторую очередь сообщений RabbitMQ сообщение об этом
 | 
				
			||||||
 | 
					            Result.Error - в таблице Редиса для выполненых задач, пометить, что это ошибка и уведомить об этом по второй очереди сообщений
 | 
				
			||||||
 | 
					            и потом почистить self.currently_underway
 | 
				
			||||||
 | 
					            '''
 | 
				
			||||||
            self.queue.task_done()
 | 
					            self.queue.task_done()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @staticmethod
 | 
					    @staticmethod
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,6 +14,7 @@ class MyMailParser(BaseParser):
 | 
				
			|||||||
    BASE_DIR = os.path.abspath(f"downloads/MyMailRu")
 | 
					    BASE_DIR = os.path.abspath(f"downloads/MyMailRu")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def get_video_link(self, playwright: Playwright):
 | 
					    def get_video_link(self, playwright: Playwright):
 | 
				
			||||||
 | 
					        # TODO: проверить качество видео
 | 
				
			||||||
        browser = playwright.chromium.launch(headless=True)
 | 
					        browser = playwright.chromium.launch(headless=True)
 | 
				
			||||||
        context = browser.new_context()
 | 
					        context = browser.new_context()
 | 
				
			||||||
        page = context.new_page()
 | 
					        page = context.new_page()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -45,3 +45,7 @@ class BaseParser:
 | 
				
			|||||||
        except OSError as exception:
 | 
					        except OSError as exception:
 | 
				
			||||||
            if exception.errno != errno.EEXIST:
 | 
					            if exception.errno != errno.EEXIST:
 | 
				
			||||||
                raise
 | 
					                raise
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					    '''
 | 
				
			||||||
 | 
					    TODO: скорее всего добавить процедуру для конвертации итогого файла через ffmpeg, используя
 | 
				
			||||||
 | 
					    '''
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user