Ruby 读取定期更改的文件
我的程序每3秒读取一个配置文件。在一段时间内循环。一旦我用记事本之类的外部编辑器更改了配置文件,我的程序就会出于某种原因创建一个临时文件并从中继续读取 我希望我的程序从当前配置文件中读取,以便在我的程序中有最新的更改 我能怎么办 简化代码:Ruby 读取定期更改的文件,ruby,file,io,Ruby,File,Io,我的程序每3秒读取一个配置文件。在一段时间内循环。一旦我用记事本之类的外部编辑器更改了配置文件,我的程序就会出于某种原因创建一个临时文件并从中继续读取 我希望我的程序从当前配置文件中读取,以便在我的程序中有最新的更改 我能怎么办 简化代码: while(true) file = File.open(filename, "r") data = JSON.parse(file.read) if file file.close sleep(3) end 如果您愿意为此使用gem,请使
while(true)
file = File.open(filename, "r")
data = JSON.parse(file.read) if file
file.close
sleep(3)
end
如果您愿意为此使用gem,请使用以下方法 用法
如果你在linux上,你可以试试linux,这是最好的。这是一个很好的例子 首先你得跑
gem install ruby-inotify
然后试试这个代码
notifier = Inotify.new
notifier.add_watch(filename, Inotify::CREATE | Inotify::MODIFY)
notifier.each_event do |ev|
file = File.open(filename, "r")
data = JSON.parse(file.read)
file.close
end
这是你的节目。您必须说明为什么您的程序会创建一个临时文件并从中读取它。我们不能不知道为什么会发生这种情况。你为什么要投反对票?这基本上就是提问者想要做的。。。我希望我的程序从当前配置文件中读取,以便在我的程序中有最新的更改。
notifier = Inotify.new
notifier.add_watch(filename, Inotify::CREATE | Inotify::MODIFY)
notifier.each_event do |ev|
file = File.open(filename, "r")
data = JSON.parse(file.read)
file.close
end