Ruby / Resque / Redis:如何在不同的机器上设置工作人员?

时间:2013-02-21 21:22:56

标签: ruby redis sinatra resque

我一直在寻找分布式后台工作的resque。 我设法通过演示应用程序在一台机器上运行一切。但我不知道如何设置一切,以便工人在不同的机器上运行。我读到工作人员必须连接到redis服务器。但我仍然不知道从哪里开始。 某处有逐步指导吗?我没有找到任何关于此的文件。

或者有人可以向我解释一下吗?

我不使用rails btw,我正在使用Sinatra。

THX

2 个答案:

答案 0 :(得分:3)

是的,你是对的如果所有工人都可以访问redis,你可以将它们连接起来,将它们分发到不同的机器上

为此你需要工人连接到redis(我假设所有工人都可以使用)

现在在Resque连接到那个远程redis所有它必须做的就像这样

Resque.redis = "redis://[your host]:[your port]"

你也可以看到here

提到的内容

也许在config/application.rb

中定义它

希望这个帮助

答案 1 :(得分:0)

Redis安全指南建议将Redis服务器暴露给公共互联网是不安全的。因此,您最安全的选择可能是创建从每个工作机器到Redis服务器的SSH隧道。您可以在此处找到说明:

https://briandamaged.org/blog/?p=1675

一旦保护了Redis服务器并建立了SSH隧道,您的工作人员就可以通过访问localhost上的端口来连接到服务器。例如:

# Port 2000 is a tunnel to the Redis server
Resque.redis = "redis://localhost:2000"