在Rails中使用命名管道

时间:2010-03-26 16:23:18

标签: ruby-on-rails named-pipes

我需要通过命名管道读取和写入一些数据。

我在一个简单的Ruby应用程序中对它进行了测试,效果很好。

但我不知道,我应该把它放在我的Rails应用程序中?我听说过Rake任务,但我不确定,这是不是正确的解决方案。

我需要打开一个管道文件,然后收听数据。如果有,我需要处理它并进行数据库查询。然后,将一些数据写入另一个管道。我知道,它是如何工作的,但唯一的问题 - 如何使用Rails运行它?请给我一些例子。

1 个答案:

答案 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

请记住,您需要停止&重新启动进程以加载对模型所做的任何更改。