awa / main.py
zhzabcd's picture
Create main.py
64719c7 verified
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模式运行服务