flask celery 定时执行脚本
时间: 2024-07-30 11:00:46 浏览: 81
python Celery定时任务的示例
Flask 和 Celery 结合可以方便地创建一个基于 Web 的应用,并利用 Celery 进行后台定时任务的执行。Celery 是一个分布式任务队列系统,它允许你在异步方式下运行长时间运行的任务,而 Flask 则提供了一个轻量级的 web 框架用于构建前端界面。
下面是使用 Flask 和 Celery 实现定时执行脚本的基本步骤:
1. **安装依赖**:
- 安装 Flask:`pip install Flask`
- 安装 Celery 和 RabbitMQ 或 Redis 队列服务(推荐):`pip install celery[redis]`
2. **配置 Flask 应用**:
- 创建 `app.py` 文件并设置 Flask 应用,添加 Celery 配置:
```python
from flask import Flask
from flask_celery import make_celery
app = Flask(__name__)
celery = make_celery(app)
# 配置 Celery 服务器连接到消息队列
celery.conf.broker_url = 'your_broker_url'
celery.conf.result_backend = 'your_result_backend'
```
3. **定义任务函数**:
- 使用 @celery.task 装饰器将函数标记为 Celery 可处理的任务,例如:
```python
@celery.task()
def long_running_task():
# 你的长期运行脚本代码
pass
```
4. **启动定时任务**:
- 使用 `apply_async` 函数异步执行任务,并设置延迟时间或周期:
```python
@app.route('/schedule-task')
def schedule_task():
long_running_task.apply_async(args=[], countdown=60) # 每分钟执行一次
return "Scheduled task"
```
5. **运行应用**:
- 启动 Flask 服务器和 Celery worker(后台进程):
```
if __name__ == '__main__':
app.run()
celery.worker_main()
```
阅读全文