我有一个基于烧瓶的API在服务器上的虚拟环境中运行。我希望我的API调用celery任务,但是celery已经安装,并且已经在API运行的虚拟环境之外用于其他目的。我如何导入任务模块,使其可以在虚拟环境中使用。
很抱歉,如果这是一个愚蠢的问题,使用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应用程序可以包含影响任务发送方式的配置(如路由到不同队列、设置默认队列名称和队列+任务配置等)。