3

我有一个基于烧瓶的 API 在我的服务器上的虚拟环境中运行。我希望我的 API 能够调用 celery 任务,但是 Celery 已安装并且已经在运行 API 的虚拟环境之外用于其他目的。如何导入我的任务模块,以便它可以在 virtualenv 内部使用.

对不起,如果这是一个愚蠢的问题,使用 Virtualenv 对我来说是新的。

4

1 回答 1

3

您只需要安装在 virtualenv 中加载“任务”模块所需的依赖项(例如pip install celery)。

发送任务的行为与 virtualenv 并没有真正的关系,它只需要与正确的代理 URL 进行通信(但是,当使用 Django 数据库作为代理时,这可能会有点复杂)。

事实上,您也可以轻松地按名称发送任务:

$ python
>>> from celery import Celery
>>> Celery(broker='amqp://').send_task('tasks.add', (2, 2))

所以代理是唯一需要的通信点,但是 tasks.py 模块和 Celery 应用程序可以包含影响任务发送方式的配置(比如路由到不同的队列,设置默认队列名称和队列+任务配置等)。

于 2012-09-13T16:33:51.870 回答