from flask import Flask, render_template import os import time import threading import logging from DrissionPage import ChromiumPage, ChromiumOptions # 初始化Flask应用 app = Flask(__name__) # 假设你有一个简单启动信息的HTML页面 @app.route('/') def start_server(): return "sever is running" def keepAlive(tab, url, sleepTime): while True: time.sleep(sleepTime) try: tab.refresh() if not URL_HIDE: logging.info(f'Refresh {url}') else: logging.info(f'Refresh {mask_middle(url)}') except Exception as e: if not URL_HIDE: logging.error(f'Refresh {url} Error: {e}') else: logging.error(f'Refresh {mask_middle(url)} Error: {e}') # 定义一个Flask应用的Worker线程 @app.before_first_request def create_keep_alive_threads(): sleepTime = os.environ.get('SLEEP_TIME', '60') # 改为60秒 URLs = os.environ.get('URLS', '').split(',') # 获取环境变量中的URLs # 使用Flask的Threaded模式启动多个刷新线程 for url in URLs: tab = page.new_tab(url=url) Thread(target=keepAlive, args=(tab, url, int(sleepTime)), daemon=True).start() # daemon=True让worker线程在主线程停止后依然运行 if __name__ == '__main__': # 设置日志 logging.basicConfig(format='%(asctime)s - %(levelname)s - %(message)s', datefmt='%Y/%m/%d %H:%M:%S', level=logging.INFO) logging.info('Start Keeping Alive and Flask Server') # 启动Flask应用 app.run(threaded=True) # 使用Threaded模式运行服务