2016-06-11 96 views
0

我是排隊系統的新手。我使用當前應用程序的resque,並有三個隊列進行監視。我想知道運行和管理複印作業的最佳方法是什麼。問題的原因是我對互聯網上的開發人員建議的這麼多選項有些困惑。更具體地說,我的困惑在於這兩種策略。管理復職工作的最佳方式是什麼?

  • resque池
  • resque與神遊泳池

爲什麼我需要resque池,如果我能與神單獨運行工?

+0

你的查詢是否解決? –

+0

不是真的,我仍然與可用於做這樣一件基本事情的大量寶石混淆。 我計劃部署我的應用程序與capistrano +廚師。運行上帝增加了似乎不可避免的複雜性。但我並不能真正理解復甦池的需要。似乎有太多殺死鼠標的工具。 沒有理由使用resque pool或其他方式。如果有的話,甚至沒有分析權衡。 – Rahul

+0

你能解釋我的需求嗎? 你的工作人員有多頻繁? –

回答

-1

運行作業通常是異步任務。這意味着你不要等他們完成繼續與您的要求或任何稱爲工作。

由於工作性質是異步的,這可能意味着您在某個時候一次請求多個工作。由於CPU的限制,這些作業會發現一個繁忙的CPU並等待或失敗。

resque pool是一種讓他們保持一致的方法,一次執行一個。如果他們失敗了,他們有時會進入重試模式等。

上帝是一個守護進程監控工具。它會監視作業的服務器,以允許接受作業,但不一定處理故障,或者按照它們進來的順序處理作業等。

將所有這些封裝成一個好工具是sidekiq。還有一個關於它的railscast,它解釋瞭如何使用它(即使它可能有點老):http://railscasts.com/episodes/366-sidekiq

+0

感謝您的回答...有沒有任何senario當resque-pool可能是可以避免的。我問這個的原因是因爲我覺得這是一個額外的複雜性。 – Rahul

1

Resque被設計爲處理後臺作業,基本上是爲了處理在較短時間內保持隊列的作業。
它作爲延遲工作的替代品來到了圖片中。當你的後臺工作增加時,你應該選擇Resque。
現在在談論監控之前,我會談一談Resque如何工作。

  1. Resque具有Redis的作爲其後端這是一個在存儲器的數據庫中,具有redis的作爲後端使它更快 。
  2. Resque具有取出作業並執行作業的過程,作業人員執行作業 並派生一個將執行作業並退出的子作業。因此,典型的 每個作業的一個分支是Resque默認提供的分支。

  3. 現在有各種各樣的插件可以增強Resque的功能。 例如:Resque游泳池,

我們爲什麼需要它,什麼時候:人們有這樣每一個叉工人的多個作業的要求。 人們想要這些東西,所以這些插件幫助完整。

  • Resque Pool:是一個管理resque工作者池的守護進程。通過一個簡單的配置文件 ,它爲您管理您的員工,爲每個員工類型啓動 適當數量的員工。 所以它讓你的生活變得輕鬆,因爲你可以用這個來管理你的工人。
  • 上帝也作爲一個工具來監視你的工人基本上所有這些都是爲了增強現有的Resque功能。
  • 你也可以尋找Resque的Web它是用於監視Resque系統門戶網站:

您可以按照給定的鏈接哪些是幫助全對我說: Redis的持久性:http://redis.io/topics/persistence

如何Resque與Redis的工作原理:http://girders.org/blog/2011/10/30/how-queuing-with-resque-works/

Resque-網:https://github.com/resque/resque-web

教程:http://www.sitepoint.com/simple-organized-queueing-with-resque/

多個Redis的服務器:What's the Point of Multiple Redis Databases?

的Redis的數據庫

Resque調度:https://github.com/resque/resque-scheduler

Resque池管理人員:https://github.com/nevans/resque-pool

Resque的多崗位叉:https://github.com/stulentsev/resque-multi-job-forks

部署在生產中:How to deploy resque workers in production? deploy-resque-workers-in-production?rq = 1

相關問題