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