加入chrome 进程强制退出流程。防止进程一只存在消耗资源。

This commit is contained in:
liuwei
2025-08-26 17:15:15 +08:00
parent e0d0d78b31
commit d952804a92

View File

@@ -44,7 +44,7 @@ def download_image(url):
def fetch_and_create_pdf(url):
"""根据给定URL抓取页面并生成PDF"""
driver =None
driver = None
try:
# 配置Selenium
options = Options()
@@ -222,21 +222,31 @@ def fetch_and_create_pdf(url):
# 加密PDF
add_pdf_encryption(absolute_pdf_path)
driver.quit()
return absolute_pdf_path
except Exception as e:
logger.error(f"生成PDF时出错: {e}")
driver.quit()
# 如果生成失败,返回一个默认路径或空字符串
return ""
except Exception as e:
logger.error(f"抓取帖子时出错: {e}")
# 如果抓取失败,返回一个默认路径或空字符串
driver.quit()
return ""
finally:
driver.quit()
# 确保在所有情况下都关闭driver
if driver:
try:
driver.quit()
logger.debug("Chrome driver已成功关闭")
except Exception as e:
logger.error(f"关闭Chrome driver时出错: {e}")
# 在极端情况下尝试强制结束进程
try:
import psutil
process = psutil.Process(driver.service.process.pid)
process.terminate()
logger.debug("已强制终止Chrome进程")
except Exception as e2:
logger.error(f"强制终止Chrome进程失败: {e2}")
# add_pdf_encryption 和 pdf_file_path 函数保持不变
def add_pdf_encryption(pdf_file, password="4000"):