flask+apscheduler+redis实现定时任务持久化
在我们开发flask的时候,我们会结合apscheduler实现定时任务,我们部署到服务器上,会不会遇到这样的问题,每次我们部署后,我们重启服务后,原来的定时任务都需要重启,这样对我们经常迭代的项目肯定是不行的,那么我们应该怎么做呢,其实我们可以根据apscheduler的官方文档结合redis来做持久化,我们为何选择redis,现在很多公司在用,整体的效果还是不错的。
那么我们怎么来实现呢。
首先在本地安装redis,其次在我们的配置文件去配置
from apscheduler.jobstores.redis import RedisJobStore
from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor
jobstores = {
'redis': RedisJobStore(),用redis作backend
}
executors = {
'default': ThreadPoolExecutor(10),#默认线程数
'processpool': ProcessPoolExecutor(3)#默认进程
}
然后我们在app的的的文件做如下:
from apscheduler.schedulers.background import BackgroundScheduler
sched = BackgroundScheduler(jobstores=jobstores, executors=executors)
然后我们启动
sched.start() 这样我们使用flask+apscheduler+redis持久化我们实现了部分完毕,接下来,我们就是用调用sched去实现我们的job的操作。
sched.add_job(func=addtask,id=str(id),args=[str(id)],trigger='cron',day_of_week=day_week,hour=hour,minute=mindes,jobstore='redis',replace_existing=True)
启动我们的job
我们在可视化的redis可以看到

我们可以打开表来看下


这就是我们的实现的job,这样无论我们怎么去启动我们的服务,我们的定时的任务都会一直在,
在更新到阿里云服务器后,我试着对nginx重启,或者重新启动相关的服务,我们的定时任务都会继续跑,
这样我们无论怎么去部署我们的服务都可以做到持久化。
flask+apscheduler+redis实现定时任务持久化的更多相关文章
- redis 数据备份持久化方案
本文链接:http://www.cnblogs.com/zhenghongxin/p/9050219.html 使用两种备份方案 备份方案选择RDB和AOF同时进行备份,必须打开AOF的持久化机制,除 ...
- Redis系列(四)--持久化
持久化就是将数据的更新异步的保存到磁盘中 持久化方式: 1.快照:某个时间点数据的备份 MySQL dump.Redis RDB 2.写日志:MySQL BinLog.HBASE Hlog.Redis ...
- Redis两种持久化方式(RDB&AOF)
爬虫和转载请注明原文地址;博客园蜗牛:http://www.cnblogs.com/tdws/p/5754706.html Redis所需内存 超过可用内存怎么办 Redis修改数据多线程并发—Red ...
- Redis提供的持久化机制(RDB和AOF)
Redis提供的持久化机制 Redis是一种面向"key-value"类型数据的分布式NoSQL数据库系统,具有高性能.持久存储.适应高并发应用场景等优势.它虽然起步较晚,但发展却 ...
- Redis学习手册(持久化)
一.Redis提供了哪些持久化机制: 1). RDB持久化: 该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘. 2). AOF持久化: 该机制将以日志的形式记录服务 ...
- mysql主从复制、redis基础、持久化和主从复制
一.mysql(mariadb)基础 1.基础命令(centos7操作系统下) 1.启动mysql systemctl start mariadb 2.linux客户端连接自己 mysql -uroo ...
- Linux 安装redis,redis发布订阅,持久化
安装redis 1.安装redis的方式 -yum (删除这个yum安装的redis,我们只用源码编译安装的) -rpm -源码编译 2.删除原本的redis yum remove redis -y ...
- Flask结合Redis消息队列实现电影弹幕
用到的弹幕播放器插件:dplayer.js(开源) 1.安装Redis 2.安装flask-redis包 pip install flask-redis3.下载dplayer 页面搭建 1.引入资源 ...
- Redis提供的持久化机制(一)
Redis提供的持久化机制 redis是一个内存数据库,也就是说它的所有的数据都是保存在内存中的,而内存中的数据当程序结束时就会消失,所以我们要想办法把内存中的数据写到磁盘中.当程序异常退出或者正常退 ...
随机推荐
- JWT
Web安全通讯之Token与JWT http://blog.csdn.net/wangcantian/article/details/74199762 javaweb多说本地身份说明(JWT)之小白技 ...
- SpringCloud的微服务网关:zuul(理论)
参考链接:https://springcloud.cc/spring-cloud-dalston.html 一.概念与定义 1.为什么要引入API网关 后期维护:路由规则和服务实例列表困难 系统架构: ...
- mysql中出现Unknown column 'qwe' in 'field list'的错误
下面是我建表的代码 输入数据的代码 可以看到出现了类似Unknown column 'qwe' in 'field list'的错误 当时看了好久改了又改都没有找到错误,直道我在一次打C语言代码的过程 ...
- 基于OpenCV单目相机的快速标定--源码、工程、实现过程
相机的标定是所有人走进视觉世界需要做的第一件事,辣么多的视觉标定原理解释你可以随便在网上找到,这里只讲到底如何去实现,也算是给刚入门的朋友做个简单的分享. 1.单目相机标定的工程源码 首先请到同性交友 ...
- POJ-1122 FDNY to the Rescue!---Dijkstra+反向建图
题目链接: https://vjudge.net/problem/POJ-1122 题目大意: 给出矩阵,矩阵中每个元素tij表示从第i个交叉路口到第j个交叉路口所需时间,若tij为-1则表示两交叉路 ...
- hdu2674 N!Again---思维
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2674 题目大意: 求n!%2009的值 思路: 由于模2009,所以大于等于2009的直接为0,前2 ...
- NetCore2.0技术文章目录
记录NetCore2.0的学习和工作,理解对与错不重要,重要的是,我飘~~~过 ------------------------------------------------------------ ...
- ORACLE数据库编程
第一章 Oracle数据库基本概念 一.介绍 Oracle数据库系统是美国Oracle(甲骨文)公司提供的以分布式数据库为 核心的一组软件产品,是目前最流行的客户/服务器(Client/Server, ...
- 关于terraform的状态管理
我们想在aws创建3台主机,使用ansible和terraform都是可以实现的. 用ansible可能是这样子的: - ec2: count: 10 image: ami-40d281120 ins ...
- javascript 作用域链与执行环境
前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! 作用域.作用域链.执行环境.执行环境栈以及this的概念在javascript中非常重要,本人经常弄混淆, ...