【问题标题】:Ruby / Resque / Redis: How to set up workers on different machines?Ruby / Resque / Redis:如何在不同的机器上设置工人?
【发布时间】:2013-02-07 09:08:57
【问题描述】:

我一直在研究分布式后台作业的 resque。 我设法通过演示应用程序让一切都在一台机器上运行。但我不知道如何设置所有东西,以便工人在不同的机器上运行。我读到工作人员必须与redis服务器建立连接。但我仍然不知道从哪里开始。 某处有分步说明吗?我没有找到任何关于此的文档。

或者谁能给我解释一下?

顺便说一句,我不使用 Rails,我使用的是 Sinatra。

谢谢

【问题讨论】:

    标签: ruby redis sinatra resque


    【解决方案1】:

    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"
    

    【讨论】:

      【解决方案2】:

      是的,你是对的

      为此,您需要将工作人员连接到 redis(我假设所有工作人员都可以使用)

      现在在 Resque 中要连接到远程 redis,它所要做的就是这样

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

      你也可以看到它在here 上提到的相同内容

      也许在你的config/application.rb中定义它

      希望有帮助

      【讨论】:

      • 好的,是否有必要在所有机器上保留所有应用程序代码的副本?
      • @Mexxer 是的,也许您需要在所有机器上复制应用程序代码,因为resque 就像由 rake 任务触发,而 rake 任务就像是特定于应用程序的,但是,我可以知道可能要实现什么就像你的最终结果目标是什么。因为您上面的评论让我相信您打算使用 resque 作为不同应用程序之间的消息传递,如果我错了,请纠正我
      • 我想要实现的是:我希望我的 webapp 将作业发送到 redis 服务器,并拥有一个由多台机器组成的集群,工作人员在其中运行和执行作业(例如:发送电子邮件) .
      • @Mexxer 这方面有什么进展吗?提前谢谢!
      • @hackhowtofaq 进展如何?
      猜你喜欢
      • 2012-05-02
      • 1970-01-01
      • 1970-01-01
      • 2013-07-02
      • 2011-09-27
      • 1970-01-01
      • 2012-08-19
      • 2012-06-10
      • 1970-01-01
      相关资源
      最近更新 更多