В моделях, которые вы хотите «обновить», вы можете настроить статические методы:
# app/models/product.rb
class Product < ActiveRecord::Base
// some code
def self.refresh_stocks
// some code
end
def self.refresh_thumbnails
// some code
end
end
Тогда я предлагаю вам определить некоторые custom rake tasks:
# lib/tasks/myapp.rake
namespace :myapp do
namespace :products do
desc 'Refresh products'
task refresh: :environment do
Product.refresh_stocks
Product.refresh_thumbnails
end
end
end
Затем, вы можете использовать всякий раз, когда gem настраивает ваше планирование на вкладке cron благодаря хорошему dsl:
# config.schedule.rb
every 1.hour do
rake "myapp:products:refresh"
end
Большая победа когда вы используете capistrano для развертывания вашего приложения: в этом случае используйте whenever capistrano integration, чтобы автоматически обновлять вкладку cron при каждом развертывании.
Счастливое расписание
Вам нужно выполнить это раз в каждые х секунд? Или через несколько секунд после какого-то события? Является ли он конкретным пользователем? Или вам нужно обновлять все записи независимо от каких-либо условий? – venkatKA
Мне нужно сделать это каждые x секунд, если для boolean установлено значение true. Это только для подмножества пользователей (активные символы, а не те, которые мы считали «мертвыми»). – Red