我应该使用什么 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 发布等。最后我设置上帝关闭并重新启动

在负载方面。不确定我是否遵循,调度程序将触发事件,但负载取决于您拥有的工作人员数量以及您决定如何实施创建。您可以设置队列的优先级和队列的工作人员,但我想如果您不及时处理它们就会积压,这是可以接受的。 ?通常你会 运行 它们在一个单独的服务器上,这样可以最大限度地减少对前端的影响