在使用Celery进行任务调度时,可以将任务代码和调用代码放在不同的项目中。下面是一个示例解决方法:
在"task_project"项目中,创建一个名为"tasks.py"的文件,用于定义Celery任务。示例代码如下:
# tasks.py
from celery import Celery
app = Celery('tasks', broker='pyamqp://guest@localhost//')
@app.task
def add(x, y):
return x + y
在"caller_project"项目中,创建一个名为"main.py"的文件,用于调用Celery任务。示例代码如下:
# main.py
from task_project.tasks import add
result = add.delay(4, 5)
print(result.get())
在"task_project"项目中执行以下命令:
$ pip install celery
在"caller_project"项目中执行以下命令:
$ pip install celery
在"task_project"项目中执行以下命令:
$ celery -A tasks worker --loglevel=info
在"caller_project"项目中执行以下命令:
$ python main.py
这样,任务代码和调用代码就可以分别放在不同的项目中,并通过Celery进行任务调度。