我一直在尋找resque分佈式背景工作。 我設法通過演示應用程序讓一切工作在一臺機器上。但我不知道如何設置所有東西,以便工作人員在不同的機器上運行。我讀到,工作人員有必要連接到redis服務器。但我仍然不知道從哪裏開始。 有沒有一步一步的指示?我沒有找到任何有關這方面的文件。Ruby/Resque/Redis:如何在不同的機器上設置工人?
或者有人可以給我解釋一下嗎?
我不使用rails btw,我使用Sinatra。
THX
我一直在尋找resque分佈式背景工作。 我設法通過演示應用程序讓一切工作在一臺機器上。但我不知道如何設置所有東西,以便工作人員在不同的機器上運行。我讀到,工作人員有必要連接到redis服務器。但我仍然不知道從哪裏開始。 有沒有一步一步的指示?我沒有找到任何有關這方面的文件。Ruby/Resque/Redis:如何在不同的機器上設置工人?
或者有人可以給我解釋一下嗎?
我不使用rails btw,我使用Sinatra。
THX
是的,你是正確的。如果所有的工作人員都可以訪問Redis的你可以連接起來,以他們不同的機器
上發佈有關需要工人被連接到Redis的(我認爲是提供給所有工人)
現在Resque連接到遠程Redis的所有它做的是這樣的
Resque.redis = "redis://[your host]:[your port]"
你也可以看到同樣也提到了here
也許把它定義在你的config/application.rb
希望這有助於
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"
好的,是否有必要在所有機器上保留所有應用程序代碼的副本? – Mexxer 2013-02-22 06:18:41
@Mexxer是的,也許你需要將應用程序代碼複製到所有機器上,因爲'resque'就像是由rake任務觸發的,而rake任務就像特定於應用程序的,但是,我可能知道什麼是試圖實現的,也許像什麼是ur最終結果GOAL 。因爲你上面的評論讓我相信你打算使用resque作爲不同的應用程序之間的消息傳遞的東西糾正我,如果我錯了 – Viren 2013-02-22 06:51:36
我想要實現的是:我想我的web應用程序發送作業到redis服務器,並有工作人員運行並執行作業的多臺機器集羣(例如:發送電子郵件)。 – Mexxer 2013-02-22 07:22:40