队列优化,支持二次魔改

This commit is contained in:
2026-06-10 17:04:34 +08:00
parent 8b79ebcfd7
commit d24cbabfbc
3 changed files with 25 additions and 8 deletions
+10 -8
View File
@@ -5,20 +5,22 @@ from idlelib.window import add_windows_to_menu
from msilib import add_data
from typing import Optional
from baid_spider.utils.pqueue import SpiderPriorityQueue
class Scheduler:
def __init__(self):
self.requeste_queue :Optional[PriorityQueue] = None
self.requeste_queue :Optional[SpiderPriorityQueue] = None
def open(self):
self.requeste_queue = PriorityQueue()
self.requeste_queue = SpiderPriorityQueue()
async def next_request(self):
coro = self.requeste_queue.get()
try:
request = await asyncio.wait_for(coro,timeout=0.2)
except TimeoutError:
return None
# coro = self.requeste_queue.get()
# try:
# request = await asyncio.wait_for(coro,timeout=0.2)
# except TimeoutError:
# return None
# return request
request = await self.requeste_queue.get()
return request
async def enqueue_request(self,request):
View File
+15
View File
@@ -0,0 +1,15 @@
import asyncio
from asyncio import PriorityQueue,TimeoutError
class SpiderPriorityQueue(PriorityQueue):
def __init__(self,maxsize=0):
super(SpiderPriorityQueue,self).__init__(maxsize=maxsize)
async def get(self):
f = super().get()
try:
request = await asyncio.wait_for(f,timeout=0.2)
except TimeoutError:
return None
return request