当前位置: 首页 > article >正文

python 中 SchedulerManager 使用踩坑

问题: 服务中我写了多个定时任务,如下:

发现到了定时时间,下面的任务就是不执行,,最后一个任务一个任务注释掉来测,发现了问题,

self.scheduler_manager.add_cron_job(SearchQualityTask().search_quality_statistics_task,hour="10, 15, 19",minute=0)
self.scheduler_manager.add_one_time_job(HotSearchWordTask().hot_search_word_statistics_task,run_date=datetime.now() + timedelta(seconds=10))

上面这个方法有个bug,导致任务死循环,最后查了相关资料,

发现:SchedulerManager 是单线程的。根据代码实现,它使用了 TornadoScheduler,这是 APScheduler 库中专为 Tornado 框架设计的调度器。

Tornado 是一个基于事件循环的单线程异步框架,TornadoScheduler 也遵循这一特性。虽然它是单线程的,但通过异步编程模型(可以看到代码中有 async_wrapper 方法处理异步函数)来实现并发任务处理。

这意味着所有调度的任务都在同一个线程的事件循环中执行,通过非阻塞 I/O 和异步处理来实现高效并发,而不是通过多线程。

http://www.lryc.cn/news/2383835.html

相关文章:

  • Python后端框架新星Robyn:性能与开发体验的双重革命
  • 人工智能解析:技术革命下的认知重构
  • 【Linux】基础开发工具
  • OpenCV计算机视觉实战(7)——色彩空间详解
  • 体育直播网站如何实现实时数据
  • 【AI模型学习】上/下采样
  • Unity Shader入门(更新中)
  • 嵌入式学习的第二十六天-系统编程-文件IO+目录
  • 珠宝课程小程序源码介绍
  • KNN模型思想与实现
  • 【信息系统项目管理师】第15章:项目风险管理 - 55个经典题目及详解
  • fscan教程1-存活主机探测与端口扫描
  • 蓝桥杯1447 砝码称重
  • 腾讯2025年校招笔试真题手撕(三)
  • 怎样通过神经网络估计股票走向
  • 【RocketMQ 生产者和消费者】- 生产者启动源码-上报生产者和消费者心跳信息到 broker(3)
  • Python----循环神经网络(Word2Vec的优化)
  • Simon J.D. Prince《Understanding Deep Learning》
  • 开搞:第四个微信小程序:图上县志
  • 模型评估与调优(PyTorch)
  • sockaddr结构体详解
  • Seata源码—7.Seata TCC模式的事务处理一
  • 【语法】C++的map/set
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Live View Kit (3)
  • vue vite textarea标签按下Shift+Enter 换行输入,只按Enter则提交的实现思路
  • MySQL多线程备份工具mysqlpump详解!
  • 创建信任所有证书的HttpClient:Java 实现 HTTPS 接口调用,等效于curl -k
  • Redisson分布式集合原理及应用
  • 深入理解 PlaNet(Deep Planning Network):基于python从零实现
  • 精益数据分析(75/126):用户反馈的科学解读与试验驱动迭代——Rally的双向验证方法论