2016-12-11 3 views
0

У меня есть приложение для портфеля ценных бумаг, которое получает финансовые данные от Yahoo Finance. Я хочу настроить функцию, которая рассчитает стоимость портфеля (которая будет включать отправку запроса на получение yahoo для всех соответствующих цен на акции и вычисления количества цены * и сохранение этого в атрибуте суммы объекта портфеля). У меня есть модель оценки (которая принадлежит портфелю), которая будет использоваться для создания экземпляров оценки, которые будут хранить количество и дату портфеля каждый день. Затем я буду оценивать оценки портфеля на графике, чтобы отслеживать эффективность его выборки акций.Всякий раз, когда драгоценный камень с cron или Resque gem для выполнения задач в рельсах

Я только хочу запустить это один раз в день в конце дня. В настоящее время я думаю о том, чтобы просто использовать каждый драгоценный камень для планирования задачи и выполнения вышеуказанных действий для извлечения и расчета цен. Может ли это быть хорошим вариантом для фоновой обработки, такой как Resque?

+0

u можете использовать этот ответ для справки http://stackoverflow.com/questions/40994581/rails-5-scheduler-to-update-database-once-a-day/40995192#40995192 – abhi110892

ответ

0

Есть много способов выполнить вашу задачу. Один из способов состоит в том, чтобы написать задачу рейка и запустить их один раз в день. Для планирования вы можете использовать драгоценный камень whenever. Он обеспечивает удобный способ описания графика 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.