flask+apscheduler+redis实现定时任务持久化
时间: 2023-07-02 10:22:13 浏览: 225
可以通过以下步骤来实现flask+apscheduler+redis的定时任务持久化:
1. 安装相关库
```python
pip install flask apscheduler redis
```
2. 创建一个Flask应用程序,并配置redis
```python
from flask import Flask
from redis import Redis
app = Flask(__name__)
app.config['REDIS_URL'] = 'redis://localhost:6379/0'
redis = Redis.from_url(app.config['REDIS_URL'])
```
3. 创建一个scheduler对象并配置redis存储
```python
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.jobstores.redis import RedisJobStore
jobstores = {
'redis': RedisJobStore(redis=redis)
}
scheduler = BackgroundScheduler(jobstores=jobstores)
```
4. 定义一个定时任务
```python
from datetime import datetime
def my_job():
print('Hello World!', datetime.now())
scheduler.add_job(my_job, 'interval', seconds=10)
```
5. 启动scheduler
```python
scheduler.start()
```
这样,定时任务就会在后台以10秒的间隔执行。
当你的应用程序关闭时,你可以使用以下代码来关闭scheduler,并清除redis中的所有任务:
```python
scheduler.shutdown()
RedisJobStore(redis=redis).remove_all_jobs()
```
这样就可以实现flask+apscheduler+redis的定时任务持久化了。
阅读全文