celery 动态定时任务探索
2024-09-06 12:00:23
环境:
- celery 4.3
- flask
- python 3.7
- linux
需求:
动态添加定时任务,且方便维护。
解决思路:
参考django-celery 或是celery源码,将定时任务配置放置到数据库中,从而维护数据达到动态定时任务到效果。
定时任务对应的是beat, beat将产生task给worker.beat的scheduler是可以定制的,通过BEAT_SCHEDULER将其传入。
定制scheduler:
查看Scheduler源码可知
def get_schedule(self):
return self.data def set_schedule(self, schedule):
self.data = schedule
get_schedule可以写成从数据库中获取,set_schedule写成将任务写入数据库中
需要注意的是last_run_at,beat 将通过这个值来确定任务下次运行时间。
总成品:
最新文章
- 协议分析 - DHCP协议解码详解
- 决策树的python实现
- Linux上如何执行java程序
- 移动 Web 触摸与运动解决方案 AlloyTouch 开源啦
- 单例模式singleton
- MapKit 添加大头针
- C#关于导出excel的方法
- flot_js_$用法解释
- akka简单示例-2
- STM32串口控制步进电机(原创)
- dig挖出DNS的秘密
- jq封装
- Laravel 5.2 二、HTTP路由、创建控制器 与 资源路由
- opencv3中SurfFeatureDetector、SurfDescriptorExtractor、BruteForceMatcher的使用
- VS2010工程结构及其瘦身策略
- UCCI协议[转]
- python 解压zip压缩包
- [vundle]利用vundle工具来管理vim插件
- Mybatis 一对多 简单映射配置
- Siddhi cep java 集成简单使用