企业网站建设方案投标书,网站建设运营费用预算,深圳网站公司注册,免费申请邮箱账号文章目录前言实现后语前言 在使用Python的web框架中#xff0c;包括flask/Django#xff0c;其中大量用到celery#xff1b;celery作为异步任务使用的多#xff0c;同时也会用celery来跑些定时任务#xff0c;比如每晚定时跑脚本、跑数据统计等闲时任务。但随着任务量的增…
文章目录前言实现后语前言 在使用Python的web框架中包括flask/Django其中大量用到celerycelery作为异步任务使用的多同时也会用celery来跑些定时任务比如每晚定时跑脚本、跑数据统计等闲时任务。但随着任务量的增多celery的弊端就暴露比如不支持很好的可视化flower实属基类比如任务异常失败了无从排查比如定时任务异常未执行无从排查。 此时就需要引入新的定时任务框架来支持但要求是
框架简单可以轻松接入支持良好的可视化支持多节点任务执行支持任务以来支持任务失败告警支持任务日志可查
实现 定时任务框架的选择很多比如
1.airflow: Python框架具备worker容灾支持DAG的任务依赖支持可视化但相对复杂且任务一多性能下降
地址 https://github.com/apache/airflow
2.dolphinscheduler: Java框架具备容灾支持DAG的任务依赖但相对复杂且任务一多性能下降
地址 https://github.com/apache/dolphinscheduler
3.cronsun: Golang框架具备容灾不支持任务依赖具备可视化配置简单
地址 https://github.com/shunfei/cronsun但这里推介的是gocron框架这个框架满足前文里的6点要求同时相对前两种有配置简单功能够用相对后一种支持任务依赖具备更好的可视化。缺点则是不支持DAG的任务依赖另外则是2020年后没有再更新因为是个人项目所以未再维护。 框架地址https://github.com/ouqiang/gocron 之所以推介该框架是因为工作上用了2年多也很稳定如果没有额外的新需求则是非常值得一用。 gocron分为server和node两个服务server就是调度和配置node则是具体执行的节点简单配置可以server和node都配置在同一台机子前者监听5920端口后者监听5921端口。 虽然其支持docker部署但一般node执行时需要执行宿主机的任务所以docker执行不方便而server自身同时具备命令行和web的功能实际上是将前端vue框架嵌入了go二进制其可以用docker快速部署。
后语 gocron最大的问题是没有后续维护了但一些易用性上完全可以优化我这边也做了相应的优化在后续里发出来。另外可以通过配置systemctl的配置使其支持开机自动重启这样在节点机器维护的时候也能正常重启