如果超过预设时间,则自动更改Postgresql数据库中的记录

时间:2015-12-08 10:16:12

标签: ruby-on-rails ruby postgresql

我正在建立一个sudo停车管理系统。我正在尝试构建在时间用完时更改Postgresql记录的可用性状态的功能。我希望在创建记录24小时后,可用性状态更改为AVAILABLE

非常感谢任何有关实现这一目标的提示或技巧。

1 个答案:

答案 0 :(得分:2)

这是一项非常简单的任务。

设置rake任务,更新记录。例如:

# lib/tasks/update_avilability.rake
ParkingSpace.where('created_at > ?', 1.day).find_each do |ps|
  ps.update(status: 'AVAILABLE')
end

然后创建一个cron作业,然后每10分钟运行一次这个任务。

您可以使用whenever gem:

#config/schedule.rb
every 10.minutes do
  rake 'update_avilability', output: 'log/cron.log'
end

一般来说,这是它的外观。当然,有些事情可以根据您的应用进行设置和设置。

请参阅docs for background jobs in Rails