flask+celery定时任务时间间隔
时间: 2024-01-17 12:03:24 浏览: 86
python Celery定时任务的示例
在Flask和Celery中设置定时任务的时间间隔可以通过Celery的beat调度器来实现。beat调度器允许您定义定时任务的时间间隔,以便在指定的时间间隔内执行任务。
以下是一个示例,演示如何在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. 在您的Flask应用中定义一个定时任务:
```python
from datetime import timedelta
@celery.task
def my_task():
# 执行您的任务逻辑
print("定时任务执行了!")
# 定义定时任务的时间间隔为每分钟执行一次
CELERYBEAT_SCHEDULE = {
'my-task': {
'task': 'my_app.my_task',
'schedule': timedelta(minutes=1),
},
}
# 将定时任务配置添加到Celery的beat调度器中
celery.conf.beat_schedule = CELERYBEAT_SCHEDULE
```
4. 启动Celery的worker和beat调度器:
在命令行中执行以下命令:
```shell
celery -A your_app.celery worker --loglevel=info
celery -A your_app.celery beat --loglevel=info
```
这样,您的定时任务将会每分钟执行一次。
阅读全文