如何pip安装一个芹菜任务模块



我有一个django REST API设置在一台机器上(目前在本地机器上测试,但最终将在web服务器上)。我们称这台机器为"客户机"。我还有一台计算服务器,用于运行需要长时间执行的cpu密集型任务。我们把这台机器命名为run-server。

"run-server"运行一个连接到本地rabbitmq服务器的celery worker。worker当前在git模块中,结构如下:

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

这一切都是在虚拟环境中运行的。cmd.sh基本上在"run-server"上执行celery multi start workername -A tasks -l infoclient.py是一个cli脚本,可以从任何机器(即"客户端")的shell手动提交任务到"运行服务器"。

我想从django设置中运行等同于客户端的脚本,而不需要在django存储库中复制tasks.pyclient.py代码。理想情况下,我将pip install proj从django代码和导入项目使用它,就像客户端脚本一样。

我如何包装项目来实现这一点?

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

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

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

相关内容

  • 没有找到相关文章

最新更新