You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止APScheduler在控制台打印任务错过(Misfire)警告信息?

解决APScheduler添加事件监听器后仍输出红色警告的问题

问题核心:APScheduler的事件监听器与内置日志系统相互独立——即便你通过EVENT_JOB_MISSED和EVENT_JOB_ERROR捕获了事件,框架默认仍会通过日志输出警告信息。要解决这个问题,只需调整APScheduler的日志级别,屏蔽不需要的警告输出。

解决方案步骤

  • 导入Python标准库的logging模块
  • 将APScheduler相关日志器的级别调整为ERROR及以上(或直接设置为CRITICAL,彻底屏蔽非致命日志)

修改后的代码示例

def SetScheduler():
    global shedul
    import logging
    from apscheduler.schedulers.background import BackgroundScheduler
    from apscheduler.events import EVENT_JOB_ERROR, EVENT_JOB_MISSED
    
    # 调整APScheduler日志级别,屏蔽警告
    logging.getLogger('apscheduler').setLevel(logging.ERROR)
    
    shedul = BackgroundScheduler()
    shedul.add_listener(shed_listener, EVENT_JOB_MISSED | EVENT_JOB_ERROR)

更精准的日志控制(可选)

如果你只想屏蔽特定类型的警告,比如仅针对任务错过/错误的日志,可以定位到具体的日志器(例如输出警告的apscheduler.scheduler):

logging.getLogger('apscheduler.scheduler').setLevel(logging.ERROR)

这样既保留APScheduler其他重要日志,又能避免让普通用户看到不必要的红色警告。

内容的提问来源于stack exchange,提问作者MarcusAurelius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 20:54:28