2016-02-05 46 views
0

我在我的應用程序中有一個「播放」按鈕,用於檢查來自API的股票值並創建一個包含該值的位置對象。這個動作使用Resque作出下列方式使用Resque和Redis的後臺作業:我應該使用哪些Rails創業板來使用Resque重複創作?

控制器 - stock_controller.rb:

def start_tracking 
    @stock = Stock.find(params[:id]) 
    Resque.enqueue(StockChecker, @stock.id) 
    redirect_to :back 
    end 

工人:

class StockChecker 
    @queue = :stock_checker_queue 

    def self.perform(stock_id) 
    stock = Stock.find_by(id: stock_id) 
    stock.start_tracking_position 
    end 

end 

型號 - stock.rb:

def start_tracking_position 
    // A Position instance that holds the stock value is created 
    end 

我現在希望每15分鐘爲每個庫存對象發生這種情況。我看着scheduling section in the Ruby Toolbox website,很難決定什麼符合我的需求,以及如何開始實施它。

我的問題是我的應用程序會創建大量的Position對象,所以我需要一些簡單的東西,使用Resque並且可以承受這種類型的對象創建而不會超載應用程序。

我應該使用什麼寶石,當start_tracking動作發生在Stock對象上時,每15分鐘發生一次Resque Job的最簡單方法是什麼?

回答

0

我發現調度程序有用:https://github.com/resque/resque-scheduler

配置了schedule.yml 15分鐘

我發現這是保證它的運行後釋放等。在我建立神關機結束並重新啓動

在負載方面的最大的問題。不確定我遵循,調度程序將觸發事件,但負載取決於您擁有的工作人員數量以及您決定如何實現創建。你可以設置隊列的優先級和隊列的工作人員,但是我想如果你沒有及時處理他們,你會得到積壓,這是可以接受的。 ?通常情況下,你會運行一個單獨的服務器,這將最大限度地減少對前端的影響

相關問題