我应该使用什么 Rails gem 来使用 Resque 进行重复性作业?
What Rails gem should I use to make recurring jobs with Resque?
我的应用程序中有一个 "Play" 按钮,用于检查 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
我现在希望每 15 分钟对每个 Stock 对象执行一次。我查看了 scheduling section in the Ruby Toolbox website 并且很难决定什么适合我的需求以及如何开始实施它。
我担心我的应用程序会创建大量 Position
对象,因此我需要一些简单的东西,使用 Resque 并且可以承受这种类型的对象创建而不会使应用程序过载。
当 Stock
对象上发生 start_tracking
操作时,我应该使用什么 gem 以及使我的 Resque Job 每 15 分钟发生一次的最简单方法是什么?
我发现 resque 调度程序很有用:https://github.com/resque/resque-scheduler。
配置 schedule.yml 15 分钟
我发现的最大问题是确保它 运行 宁 post 发布等。最后我设置上帝关闭并重新启动
在负载方面。不确定我是否遵循,调度程序将触发事件,但负载取决于您拥有的工作人员数量以及您决定如何实施创建。您可以设置队列的优先级和队列的工作人员,但我想如果您不及时处理它们就会积压,这是可以接受的。 ?通常你会 运行 它们在一个单独的服务器上,这样可以最大限度地减少对前端的影响
我的应用程序中有一个 "Play" 按钮,用于检查 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
我现在希望每 15 分钟对每个 Stock 对象执行一次。我查看了 scheduling section in the Ruby Toolbox website 并且很难决定什么适合我的需求以及如何开始实施它。
我担心我的应用程序会创建大量 Position
对象,因此我需要一些简单的东西,使用 Resque 并且可以承受这种类型的对象创建而不会使应用程序过载。
当 Stock
对象上发生 start_tracking
操作时,我应该使用什么 gem 以及使我的 Resque Job 每 15 分钟发生一次的最简单方法是什么?
我发现 resque 调度程序很有用:https://github.com/resque/resque-scheduler。
配置 schedule.yml 15 分钟
我发现的最大问题是确保它 运行 宁 post 发布等。最后我设置上帝关闭并重新启动
在负载方面。不确定我是否遵循,调度程序将触发事件,但负载取决于您拥有的工作人员数量以及您决定如何实施创建。您可以设置队列的优先级和队列的工作人员,但我想如果您不及时处理它们就会积压,这是可以接受的。 ?通常你会 运行 它们在一个单独的服务器上,这样可以最大限度地减少对前端的影响