当调试celery相关的代码时,每次改完代码,都需要重启celery代码才可以生效,本文的目的就是当代码发生改动,celery可以自动重启,示例代码task.py如下(注:请根据自己的业务逻辑自行修改)

1
2
3
4
5
6
7
8
9
10
11
12
13
from celery import Celery
app=Celery("tasks",
backend="redis://127.0.0.1:6379/1,
broker="redis://127.0.0.1:6379/1")
@app.task
def add(x,y):
return x+y

if __name__ == "__main__":
from werkzeug._reloader import run_with_reloader

# 开发时可以直接运行python tasks.py 当前目录下文件改动时,celery会自动重启
run_with_reloader(app.worker_main)

示例代码主要用到了werkzeug库的run_with_reloader函数实现了celery自动重启