【问题标题】:Whenever gem with cron or Resque gem for running tasks in rails每当 gem 使用 cron 或 Resque gem 在 Rails 中运行任务时
【发布时间】:2017-04-26 07:47:44
【问题描述】:

我有一个从 Yahoo Finance 获取财务数据的股票投资组合应用程序。我想设置一个功能来计算投资组合的价值(这将涉及向雅虎发送一个获取所有相关股票价格的请求并计算价格*数量并将其保存在投资组合对象的数量属性中)。我有一个估值模型(属于投资组合),它将用于创建估值实例,该实例将每天存储投资组合的金额和日期。然后,我会将投资组合的估值绘制在图表上,以跟踪其选股的表现。

我只想在一天结束时运行一次。就目前而言,我正在考虑简单地使用when gem 来安排任务并运行上述操作来获取和计算价格。这对于像 Resque 这样的后台处理框架来说是一个很好的用例吗?

【问题讨论】:

标签: ruby-on-rails ruby cron jobs


【解决方案1】:

有很多方法可以完成您的任务。一种方法是编写 rake 任务并每天运行一次。对于日程安排,您可以使用whenever gem。它为描述 cron 计划提供了方便的方式。

每当文档:

Whenever 是一个 Ruby gem,它为编写和编写提供了清晰的语法 部署 cron 作业。

# We will run rake task every day at some time
every :day, :at => '12:20am' do
  rake 'calculate_averages'
end

任务示例:

require 'rake'

task :calculate_averages => :environment do
  products = Product.all

  products.each do |product|
    puts "Calculating average rating for #{product.name}..."
    product.update_attribute(:average_rating, product.reviews.average("rating"))
  end
end

开始阅读whenever 文档以及如何编写rake tasks. 如何编写tasks #2

【讨论】:

    猜你喜欢
    • 2011-06-04
    • 2016-03-01
    • 2013-01-12
    • 2016-04-11
    • 2020-06-02
    • 2014-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多