我需要通过命名管道读取和写入一些数据。
我在一个简单的Ruby应用程序中对它进行了测试,效果很好。
但我不知道,我应该把它放在我的Rails应用程序中?我听说过Rake任务,但我不确定,这是不是正确的解决方案。
我需要打开一个管道文件,然后收听数据。如果有,我需要处理它并进行数据库查询。然后,将一些数据写入另一个管道。我知道,它是如何工作的,但唯一的问题 - 如何使用Rails运行它?请给我一些例子。
答案 0 :(得分:1)
听起来你有一个网站,它将拥有你通过管道传输的后端数据源。听起来这也不会成为HTTP请求/响应周期的一部分,这可能使rake任务成为一个不错的选择。
在lib / tasks中创建一个名为listener.rake的文件
它应该是这样的:
desc 'Listens to pipe and does stuff'
task :listen_to_pipe => :environment do
puts "Listen to Pipe starting"
#open pipe
#loop to listen to it
puts "going to do stuff"
#do stuff
#end
end
然后,从项目的根目录中的命令行,您可以像这样调用它:
rake listen_to_pipe
对于不同的环境,请执行以下操作:
rake listen_to_pipe RAILS_ENV=production
此任务可以访问您的所有模型。要结束它,请按Ctrl + C
请记住,您需要停止&重新启动进程以加载对模型所做的任何更改。