2013-02-21 88 views
4

我一直在尋找resque分佈式背景工作。 我設法通過演示應用程序讓一切工作在一臺機器上。但我不知道如何設置所有東西,以便工作人員在不同的機器上運行。我讀到,工作人員有必要連接到redis服務器。但我仍然不知道從哪裏開始。 有沒有一步一步的指示?我沒有找到任何有關這方面的文件。Ruby/Resque/Redis:如何在不同的機器上設置工人?

或者有人可以給我解釋一下嗎?

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

THX

回答

3

是的,你是正確的。如果所有的工作人員都可以訪問Redis的你可以連接起來,以他們不同的機器

上發佈有關需要工人被連接到Redis的(我認爲是提供給所有工人)

現在Resque連接到遠程Redis的所有它做的是這樣的

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

你也可以看到同樣也提到了here

也許把它定義在你的config/application.rb

希望這有助於

+0

好的,是否有必要在所有機器上保留所有應用程序代碼的副本? – Mexxer 2013-02-22 06:18:41

+0

@Mexxer是的,也許你需要將應用程序代碼複製到所有機器上,因爲'resque'就像是由rake任務觸發的,而rake任務就像特定於應用程序的,但是,我可能知道什麼是試圖實現的,也許像什麼是ur最終結果GOAL 。因爲你上面的評論讓我相信你打算使用resque作爲不同的應用程序之間的消息傳遞的東西糾正我,如果我錯了 – Viren 2013-02-22 06:51:36

+0

我想要實現的是:我想我的web應用程序發送作業到redis服務器,並有工作人員運行並執行作業的多臺機器集羣(例如:發送電子郵件)。 – Mexxer 2013-02-22 07:22:40

0

Redis的安全指南表明,它是不安全的你的Redis服務器暴露在公衆互聯網。因此,最安全的方法是創建從每臺工作機到Redis服務器的SSH隧道。你可以在這裏找到說明:

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

一旦確認獲得Redis的服務器,建立一個SSH隧道,你的員工可以通過在本地主機上訪問端口連接到服務器。例如:

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