update watchlist
This commit is contained in:
58
app.py
58
app.py
@@ -11682,19 +11682,51 @@ def initialize_event_polling():
|
||||
print(f'[轮询] 只会推送 ID > {max(current_redis_max, db_max_id)} 的新事件')
|
||||
print(f'[轮询] ========== 初始化完成 ==========\n')
|
||||
|
||||
# 创建后台调度器
|
||||
scheduler = BackgroundScheduler()
|
||||
# 每 30 秒执行一次轮询
|
||||
scheduler.add_job(
|
||||
func=poll_new_events,
|
||||
trigger='interval',
|
||||
seconds=30,
|
||||
id='poll_new_events',
|
||||
name='检查新事件并推送',
|
||||
replace_existing=True
|
||||
)
|
||||
scheduler.start()
|
||||
print(f'[轮询] 调度器已启动 (PID: {os.getpid()}),每 30 秒检查一次新事件')
|
||||
# 检测是否在 eventlet 环境下运行
|
||||
is_eventlet = False
|
||||
try:
|
||||
import eventlet
|
||||
# 检查 eventlet 是否已经 monkey patch
|
||||
if hasattr(eventlet, 'patcher') and eventlet.patcher.is_monkey_patched('socket'):
|
||||
is_eventlet = True
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
if is_eventlet:
|
||||
# Eventlet 环境:使用 eventlet 的协程定时器
|
||||
print(f'[轮询] 检测到 Eventlet 环境,使用 eventlet 协程调度器')
|
||||
|
||||
def eventlet_polling_loop():
|
||||
"""Eventlet 兼容的轮询循环"""
|
||||
import eventlet
|
||||
while True:
|
||||
try:
|
||||
eventlet.sleep(30) # 等待 30 秒
|
||||
poll_new_events()
|
||||
except Exception as e:
|
||||
print(f'[轮询 ERROR] Eventlet 轮询循环出错: {e}')
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
eventlet.sleep(30) # 出错后等待 30 秒再继续
|
||||
|
||||
# 启动 eventlet 协程
|
||||
eventlet.spawn(eventlet_polling_loop)
|
||||
print(f'[轮询] Eventlet 协程调度器已启动 (PID: {os.getpid()}),每 30 秒检查一次新事件')
|
||||
else:
|
||||
# 非 Eventlet 环境:使用 APScheduler
|
||||
print(f'[轮询] 使用 APScheduler BackgroundScheduler')
|
||||
scheduler = BackgroundScheduler()
|
||||
# 每 30 秒执行一次轮询
|
||||
scheduler.add_job(
|
||||
func=poll_new_events,
|
||||
trigger='interval',
|
||||
seconds=30,
|
||||
id='poll_new_events',
|
||||
name='检查新事件并推送',
|
||||
replace_existing=True
|
||||
)
|
||||
scheduler.start()
|
||||
print(f'[轮询] APScheduler 调度器已启动 (PID: {os.getpid()}),每 30 秒检查一次新事件')
|
||||
|
||||
_polling_initialized = True
|
||||
|
||||
|
||||
Reference in New Issue
Block a user