flask+celery定时任务
时间: 2024-01-17 16:03:15 浏览: 105
Flask和Celery可以结合使用来实现定时任务。下面是一个示例:
1. 首先,确保你已经安装了Flask和Celery库。
2. 创建一个Flask应用,并配置Celery:
```python
from flask import Flask
from celery import Celery
app = Flask(__name__)
app.config['CELERY_BROKER_URL'] = 'redis://localhost:6379/0'
app.config['CELERY_RESULT_BACKEND'] = 'redis://localhost:6379/0'
celery = Celery(app.name, broker=app.config['CELERY_BROKER_URL'])
celery.conf.update(app.config)
```
3. 创建一个Celery任务:
```python
@celery.task
def my_task():
# 在这里编写你的定时任务逻辑
print("定时任务执行了!")
```
4. 创建一个Flask路由来触发定时任务:
```python
@app.route('/start_task')
def start_task():
my_task.delay()
return "定时任务已启动!"
```
5. 启动Celery Worker:
```shell
celery -A your_app_name.celery worker --loglevel=info
```
6. 启动Flask应用:
```shell
flask run
```
7. 访问`http://localhost:5000/start_task`,即可触发定时任务。
请注意,上述示例中使用了Redis作为消息代理和结果后端,你可以根据自己的需求选择其他的消息代理和结果后端。
阅读全文