我有一个基本上运行游戏的rails应用程序。我需要充电"在一段时间后我的数据库中的记录的某些属性(让我们说,x秒)。最好的方法是什么?我需要使用宝石吗?
我正在使用rails 4.2.6,ruby 2.3.0和我的ORM的活动记录。
答案 0 :(得分:3)
在您想要“刷新”的模型中,您可以设置静态方法:
# 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
然后,您可以使用随时随地的宝石在您的cron选项卡中设置您的日程安排,这要归功于一个不错的dsl:
# config.schedule.rb
every 1.hour do
rake "myapp:products:refresh"
end
当您使用capistrano部署应用时,一个巨大的胜利:在这种情况下,使用whenever capistrano integration在每次部署时自动刷新您的cron标签。
快乐的日程安排