加入chrome 进程强制退出流程。防止进程一只存在消耗资源。
This commit is contained in:
@@ -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"):
|
||||
|
||||
Reference in New Issue
Block a user