You've already forked favicon-api-v3
25.09.05
This commit is contained in:
@@ -344,7 +344,7 @@ class FaviconService:
|
||||
with self._lock:
|
||||
if entity.domain in self.domain_list:
|
||||
self.domain_list.remove(entity.domain)
|
||||
# 同时从两个队列中移除元素(处理完成)
|
||||
# 任务完成,从两个队列中移出元素
|
||||
self._queue_pull(True, self.icon_queue)
|
||||
self._queue_pull(True, self.total_queue)
|
||||
|
||||
@@ -401,7 +401,8 @@ class FaviconService:
|
||||
if _cached and not cached_icon:
|
||||
# 缓存已过期,后台刷新缓存
|
||||
logger.info(f"缓存已过期,加入后台队列刷新: {entity.domain}")
|
||||
# 只增加总队列计数,不增加实时队列计数(后台任务)
|
||||
# 开始图标处理,加入两个队列
|
||||
self.icon_queue.put(entity.domain)
|
||||
self.total_queue.put(entity.domain)
|
||||
bg_tasks.add_task(self.get_icon_sync, entity, _cached)
|
||||
|
||||
@@ -415,31 +416,33 @@ class FaviconService:
|
||||
if not is_sync:
|
||||
# 返回默认图片并加入后台队列
|
||||
logger.info(f"返回默认图片并加入后台队列: {entity.domain}")
|
||||
# 只增加总队列计数,不增加实时队列计数(后台任务)
|
||||
# 开始图标处理,加入两个队列
|
||||
self.icon_queue.put(entity.domain)
|
||||
self.total_queue.put(entity.domain)
|
||||
bg_tasks.add_task(self.get_icon_sync, entity, _cached)
|
||||
return self.get_default(0)
|
||||
return self.get_default()
|
||||
else:
|
||||
# 没有缓存,实时处理,检查队列大小
|
||||
queue_size = self.icon_queue.qsize()
|
||||
if queue_size >= self.MAX_QUEUE_SIZE:
|
||||
# 加入后台队列并返回默认图片
|
||||
logger.info(f"队列大小({queue_size})>={self.MAX_QUEUE_SIZE},返回默认图片并加入后台队列: {entity.domain}")
|
||||
# 只增加总队列计数,不增加实时队列计数(后台任务)
|
||||
# 开始图标处理,加入两个队列
|
||||
self.icon_queue.put(entity.domain)
|
||||
self.total_queue.put(entity.domain)
|
||||
bg_tasks.add_task(self.get_icon_sync, entity, _cached)
|
||||
return self.get_default(0)
|
||||
return self.get_default()
|
||||
else:
|
||||
# 队列<MAX_QUEUE_SIZE,实时处理
|
||||
logger.info(f"队列大小({queue_size})<{self.MAX_QUEUE_SIZE},实时处理: {entity.domain}")
|
||||
# 同时增加两个队列计数(实时处理任务)
|
||||
# 开始图标处理,加入两个队列
|
||||
self.icon_queue.put(entity.domain)
|
||||
self.total_queue.put(entity.domain)
|
||||
icon_content = self.get_icon_sync(entity, _cached)
|
||||
|
||||
if not icon_content:
|
||||
# 获取失败,返回默认图标,不缓存
|
||||
return self.get_default(0)
|
||||
return self.get_default()
|
||||
|
||||
# 确定内容类型和缓存时间
|
||||
content_type = filetype.guess_mime(icon_content) if icon_content else ""
|
||||
@@ -451,7 +454,7 @@ class FaviconService:
|
||||
except Exception as e:
|
||||
logger.error(f"处理图标请求时发生错误 {url}: {e}")
|
||||
# 返回默认图标
|
||||
return self.get_default(0)
|
||||
return self.get_default()
|
||||
|
||||
def get_header(self, content_type: str, cache_time: int = None) -> dict:
|
||||
return self._get_header(content_type, cache_time)
|
||||
|
||||
Reference in New Issue
Block a user