gpt4 book ai didi

ruby-on-rails - 每 60 天清除一次记录

转载 作者:行者123 更新时间:2023-12-04 09:02:51 25 4
gpt4 key购买 nike

如果记录距 created_at 日期超过 60 天,我需要删除优惠模型中的记录。

我只找到了有关如何使用 rake 任务填充模型的信息,但找不到有关如何执行 rake 任务以删除记录的信息。所以我只是想知道我是否必须通过任务来执行此操作,或者 rails 是否还有其他功能可以执行此操作。

最佳答案

为任务创建一个文件:

# lib/tasks/delete_old_records.rake
namespace :delete do
desc 'Delete records older than 60 days'
task :old_records => :environment do
Model.where('created_at < ?', 60.days.ago).each do |model|
model.destroy
end

# or Model.delete_all('created_at < ?', 60.days.ago) if you don't need callbacks
end
end

运行:
RAILS_ENV=production rake delete:old_records

安排它与 cron 一起运行(在这个例子中每天早上 8 点):
0 8 * * * /bin/bash -l -c 'cd /my/project/releases/current && RAILS_ENV=production rake delete:old_records 2>&1'

您也可以使用 每当 gem 在部署时创建和管理您的 crontab:
every 1.day, :at => '8:00 am' do
rake "delete:old_records"
end

Github 上了解有关 gem 的更多信息.

关于ruby-on-rails - 每 60 天清除一次记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13975376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com