我正在建立一个涉及班次管理的铁路网站。我正在使用一个单独的数据库(SQLlite3
)来存档过去的班次,因为我需要对未来/现在的班次进行操作,而且我不希望它们因为很少访问的档案而变慢。我想在结束时自动将每个班次移动到新数据库。
我知道我可以经常使用cron
进行检查,但有没有办法在特定时间进行检查?我不需要确切的代码,只是正确方向上的一点会有所帮助。
提前致谢。
答案 0 :(得分:0)
我不确定您关于SQL
的问题的第一部分。但是,在Linux中约为cron
(如果这是你要求的话)。您可以在每个间隔时间或特定时间致电cron
,例如
如果你想在18:00调用脚本
0 18 * * * root bash /pvt/scripts/stat.sh > /dev/null 2>&1
如果你想在03:35小时调用脚本
35 3 * * * root bash /pvt/scripts/stat.sh > /dev/null 2>&1
如果你想每5分钟调用一次脚本
*/5 0 * * * root bash /pvt/scripts/stat.sh > /dev/null 2>&1
因此,如果您想在特定时间调用脚本,可以使用cron
执行此操作。
答案 1 :(得分:0)
对我来说,我会创建一个ActiveRecord
回调,然后使用它来使用sidekiq
这是演示的示例代码
班次代码:
class Shift < ActiveRecord::Base
after_update :archive_shift, if: :shift_ended?
private
def archive_shift
ShiftArchiver.perform_async(id)
end
def shift_ended?
# some condition
end
end
归档类代码:
class ShiftArchiver
include Sidekiq::Worker
def perform(shift_id)
# archiving code
end
end
这样,归档代码只会在班次结束时运行,并且会在后台运行,因此不会阻止任何请求。
的更多信息