我有一个带缓存和数据库的数据存储区,简单。棘手的部分是我想要一种方法来控制数据存储是否以实时方式命中数据库。也就是说,当进程正在运行时,我希望能够切换它是否连接到数据库。
我查看了env变量,但看起来并不像进程运行时那样更新。有没有一种简单的方法可以从命令行进入正在运行的进程,或者我只需要依赖ops能够在发生灾难时丢弃数据库侦听器吗?
请注意,这一切都是在香草红宝石中完成的 - 而不是铁轨上的红宝石。
谢谢! -Jess
答案 0 :(得分:0)
答案 1 :(得分:0)
我认为您可以使用命名管道进行简单的沟通:
#pipes.rb:
f = File.open 'mypipe', 'r+'
loop do
begin
s = f.read_nonblock 1
rescue Exception
end
case s
when '0'
puts 'Turn off DB access!'
when '1'
puts 'Turn on DB access!'
end
sleep 1
end
您可以通过写入命名管道来控制外部数据库访问:
jablan-mbp:dev $ echo 101 > mypipe
结果是:
jablan-mbp:dev $ ruby pipes.rb
Turn on DB access!
Turn off DB access!
Turn on DB access!
答案 2 :(得分:0)
假设* NIX,您是否考虑过信号? (kill -HUP pid
) - http://ruby-doc.org/core/classes/Signal.html