【发布时间】:2013-02-07 09:08:57
【问题描述】:
我一直在研究分布式后台作业的 resque。 我设法通过演示应用程序让一切都在一台机器上运行。但我不知道如何设置所有东西,以便工人在不同的机器上运行。我读到工作人员必须与redis服务器建立连接。但我仍然不知道从哪里开始。 某处有分步说明吗?我没有找到任何关于此的文档。
或者谁能给我解释一下?
顺便说一句,我不使用 Rails,我使用的是 Sinatra。
谢谢
【问题讨论】:
我一直在研究分布式后台作业的 resque。 我设法通过演示应用程序让一切都在一台机器上运行。但我不知道如何设置所有东西,以便工人在不同的机器上运行。我读到工作人员必须与redis服务器建立连接。但我仍然不知道从哪里开始。 某处有分步说明吗?我没有找到任何关于此的文档。
或者谁能给我解释一下?
顺便说一句,我不使用 Rails,我使用的是 Sinatra。
谢谢
【问题讨论】:
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"
【讨论】:
是的,你是对的
为此,您需要将工作人员连接到 redis(我假设所有工作人员都可以使用)
现在在 Resque 中要连接到远程 redis,它所要做的就是这样
Resque.redis = "redis://[your host]:[your port]"
你也可以看到它在here 上提到的相同内容
也许在你的config/application.rb中定义它
希望有帮助
【讨论】:
resque 就像由 rake 任务触发,而 rake 任务就像是特定于应用程序的,但是,我可以知道可能要实现什么就像你的最终结果目标是什么。因为您上面的评论让我相信您打算使用 resque 作为不同应用程序之间的消息传递,如果我错了,请纠正我