使用 python-rq (redis) 的多台服务器上的远程工作者

Remote workers on multiple servers with python-rq (redis)

我正在使用 redispython-rq 来管理数据处理任务。我希望在多个服务器之间分配数据处理(每个服务器将管理多个 rq worker)但我想在主服务器上保留一个唯一的队列。

有没有办法使用 python-rq 实现此目的?

谢谢。

事实证明这很容易。有两个步骤:

1) 在 master 机器上配置 Redis 以便远程 "agent" 服务器对外部通信开放。这是通过编辑 bind 信息来完成的,如 in this post 所述。如果将绑定值设置为 0.0.0.0,请确保设置密码,因为这将向任何人打开 Redis 连接。

2) 使用 url 参数在远程 "agent" 服务器上启动 worker:

rq worker --url redis://:[your_master_redis_password]@[your_master_server_IP_address]

在主服务器上,您可以通过键入以下内容来检查连接是否正确建立:

rq info --url redis://:[your_master_redis_password]@localhost

如果您启用了本地主机绑定,这应该会显示您的 "master" Redis 可用的所有工作人员,包括您在远程服务器上创建的新工作人员。