我有一个Django应用程序,它使用Django-celele、celele和rabbitmq进行离线分布式处理。
现在的设置是这样的,我需要在网络中的其他节点(与Django web应用程序所在的位置不同)中运行芹菜任务(进而运行芹菜工作者)。
要做到这一点,据我所知,我需要将所有Django代码放在这些单独的服务器中。不仅如此,我还必须安装Django应用程序所需的所有其他python库。
通过这种方式,我必须将所有django源代码传输到网络中所有可能的服务器,安装依赖项并运行某种更新系统,该系统将跨节点同步所有源代码。
-
这是正确的做事方式吗?有没有更简单的方法使celener工作程序在web应用程序服务器之外运行Django代码托管在哪里?
-
如果真的没有其他方法,只能复制代码并在中复制所有服务器,是否有一种方法可以只复制芹菜任务需求(将包括所有模型和视图——并非如此小任务)
对于这种类型的情况,我过去曾用我的所有芹菜任务代码制作过一个鸡蛋,我可以简单地rsync
或以某种方式复制到我的工作节点。通过这种方式,您可以在一个项目中编辑芹菜代码,该项目可以在django和工作节点中使用。
总之,创建一个web-app-celery-tasks
项目,并将其制作成一个可安装的egg,并拥有一个依赖于芹菜任务egg的web-app
包。