python – 多个工作节点上的Django Celery任务
发布时间:2020-12-16 23:35:07 所属栏目:Python 来源:网络整理
导读:我在同一个VM上部署了一个 django(1.10)芹菜(4.x),其中rabbitmq是代理(在同一台机器上). 我想在多节点架构上开发相同的应用程序,就像我可以复制许多工作节点,并将任务扩展为快速运行. 这里, 如何使用rabbitmq为这种架构配置芹菜? 在其他工作节点上,应该设置
我在同一个VM上部署了一个
django(1.10)芹菜(4.x),其中rabbitmq是代理(在同一台机器上).
我想在多节点架构上开发相同的应用程序,就像我可以复制许多工作节点,并将任务扩展为快速运行. 这里, >如何使用rabbitmq为这种架构配置芹菜? 解决方法
您应该在一个节点中安装borker并对其进行配置,以便来自其他节点的工作人员可以访问它.
为此,您可以在rabbitmq上创建新的用户/虚拟主机. # add new user sudo rabbitmqctl add_user <user> <password> # add new virtual host sudo rabbitmqctl add_vhost <vhost_name> # set permissions for user on vhost sudo rabbitmqctl set_permissions -p <vhost_name> <user> ".*" ".*" ".*" # restart rabbit sudo rabbitmqctl restart 从其他节点,您可以排队任务,也可以只运行工作人员来执行任务. from celery import Celery app = Celery('tasks',backend='amqp',broker='amqp://<user>:<password>@<ip>/<vhost>') def add(x,y): return x + y 如果您有这样的文件(比如task.py),则可以使用add.delay()排队任务. 你也可以开始工作 celery worker -A task -l info 你可以在这里看到我的答案,以便简要了解如何使用run tasks on remote machines.对于一步一步的过程,你可以查看我写过的帖子on scaling celery. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |