[英]What Rails gem should I use to make recurring jobs with Resque?
我的應用程序中有一個“播放”按鈕,可通過API檢查股票價值並創建一個保存該價值的Position對象。 該操作使用Resque通過以下方式使用Resque和Redis進行后台作業:
控制器-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
現在,我希望每個Stock對象每15分鍾執行一次此操作。 我查看了Ruby Toolbox網站上的“ 計划”部分,很難決定什么適合我的需求以及如何開始實施它。
我擔心的是,我的應用程序將創建大量的Position
對象,因此我需要簡單的東西,使用Resque並能承受這種類型的對象創建而不會使應用程序超載。
當Stock
對象上發生start_tracking
動作時,我應該使用哪種寶石?每15分鍾執行一次Resque Job的最簡單方法是什么?
我發現resque調度程序很有用: https : //github.com/resque/resque-scheduler 。
配置schedule.yml 15分鍾
我發現最大的問題是確保它在發布后運行。最后,我將上帝設置為關閉並重新啟動
在負載方面。 不確定我是否遵循,調度程序會觸發事件,但是負載由您擁有的工作人員數量以及您決定實現創建的方式來確定。 您可以設置隊列的優先級,並為隊列設置工作進程,但是我想如果您不及時處理積壓工作,那是可以接受的。 ? 通常,您可以在單獨的服務器上運行它們,從而最大程度地減少對前端的影響
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.