flask创建定时任务
时间: 2023-05-30 09:01:32 浏览: 420
在Flask中创建定时任务有多种方式,下面介绍其中两种。
1. 使用APScheduler库
APScheduler是一个Python定时任务库,可以在Flask应用中使用。使用该库需要先安装:
```
pip install apscheduler
```
然后在Flask应用中导入APScheduler模块,创建定时任务。以下示例代码每隔10秒执行一次任务:
```python
from flask import Flask
from apscheduler.schedulers.background import BackgroundScheduler
app = Flask(__name__)
def my_task():
print("Hello, world!")
scheduler = BackgroundScheduler()
scheduler.add_job(func=my_task, trigger='interval', seconds=10)
scheduler.start()
if __name__ == '__main__':
app.run()
```
2. 使用Celery库
Celery是一个用于分布式任务调度的Python库,也可以用于在Flask应用中创建定时任务。使用该库需要先安装:
```
pip install celery
```
然后在Flask应用中导入Celery模块,创建定时任务。以下示例代码每隔10秒执行一次任务:
```python
from flask import Flask
from celery import Celery
app = Flask(__name__)
celery = Celery(app.name, broker='amqp://guest@localhost//')
@celery.task
def my_task():
print("Hello, world!")
if __name__ == '__main__':
celery.conf.beat_schedule = {
'my-task': {
'task': 'myapp.my_task',
'schedule': 10.0
}
}
celery.conf.timezone = 'UTC'
celery.worker_main()
```
以上代码需要在命令行中执行`celery worker`命令启动Celery Worker进程。
阅读全文