我在服务器上的虚拟环境中运行了基于烧瓶的API。我希望我的API可以调用celery任务,但是Celery已经安装并且已经在运行API的虚拟环境之外运行用于其他目的。如何导入我的任务模块,以便可以在virtualenv中使用它。
很抱歉,如果这是一个愚蠢的问题,使用Virtualenv对我来说是新的。
答案 0 :(得分:3)
您只需安装在virtualenv中加载'tasks'模块所需的依赖项(例如pip install celery
)。
发送任务的行为与virtualenv并不真正相关,它只需要与正确的代理URL进行通信(例如,当使用Django数据库作为代理时,这可能会有点复杂。)
事实上,您也可以通过名称轻松发送任务:
$ python
>>> from celery import Celery
>>> Celery(broker='amqp://').send_task('tasks.add', (2, 2))
因此代理是唯一必需的通信点,但tasks.py模块和Celery应用程序可以包含影响任务发送方式的配置(例如路由到不同的队列,设置默认队列名称和队列+任务配置等等) )。