【发布时间】: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 info。 client.py 是一个 cli 脚本,它可以从任何机器(即“客户端”)的 shell 手动向“运行服务器”提交任务。
我想从 django 安装程序运行等效的客户端脚本 不必复制 django 存储库中的 tasks.py 和 client.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