【问题标题】:How to pip install a celery task module如何 pip 安装 celery 任务模块
【发布时间】:2017-01-12 05:11:17
【问题描述】:

我在一台机器上设置了 django REST API(目前正在本地机器上进行测试,但最终会在 Web 服务器上)。我们称这台机器为“客户端”。我还有一个计算服务器来运行需要很长执行时间的 CPU 密集型任务。我们称这台机器为“运行服务器”。

"run-server" 运行一个连接到本地 rabbitmq 服务器的 celery worker。工作人员当前位于具有此结构的 git 模块中:

proj/
    client.py
    cmd.sh
    requirements.txt
    tasks.py

整个事情都在 virtualenv 中运行,物有所值。 cmd.sh 基本上在“运行服务器”上执行 celery multi start workername -A tasks -l infoclient.py 是一个 cli 脚本,它可以从任何机器(即“客户端”)的 shell 手动向“运行服务器”提交任务。

我想从 django 安装程序运行等效的客户端脚本 不必复制 django 存储库中的 tasks.pyclient.py 代码。理想情况下,我会从 django 代码中 pip install proj 并导入 proj 以像客户端脚本一样使用它。

我该如何打包 proj 来实现这一点?

我习惯将自己的python模块打包,结构大致如下:

proj/
    bin/
        proj
    proj/
        __init__.py
        __main__.py
        script.py
    setup.py
    requirements.txt

【问题讨论】:

    标签: python django rabbitmq celery


    【解决方案1】:

    我设法让它自己工作。上面的结构可以正常工作。而不是celery multi start workername -A tasks -l info,您只需替换为celery multi start workername -A proj.tasks -l info,一切正常。必须在 django 和 worker 中安装相同版本的模块,因为作业队列是通过鸭子类型完成的(即路径和名称必须匹配)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-25
      • 2017-04-27
      • 2016-03-03
      • 1970-01-01
      • 2021-07-04
      • 2014-11-09
      相关资源
      最近更新 更多