先说一下需求吧。假设我有一个脚本叫poj.rb吧,他完成下面的功能:
poj.rb get 1001 :从我设定的网站获取id为1001的网页;poj.rb submit 1001.c :将1001.c文件提交;我现在想说的是,这个脚本初始化需要消耗一定的资源,而调用的频率也非常高,因此,我希望初始化一次而响应参数多次。也许有人说你可以这样实现:
# 初始化
init()
# 获得输入
while str = gets
# 处理str
end
但实际的需求不允许我这样,我想要实现类似于git的效果,也就是在终端中这样:
$ git add README.md
$ git commit -m 'first commit'
$
$ poj.rb get 1001
$ poj.rb submit 1001.pas
因此,我想让hoj.rb在第一次运行后就成为daemon,以后在shell调用poj.rb时,不会新建一个实例,而是把消息发送给之前创建好的daemon。
我目前能想到的方法是用Daemons这个 gem,但是使用Daemons.daemonize方法似乎不起作用。所以想问下各位:
daemons这个库应该如何实现这个功能;daemons如果不能实现这个功能,那么ruby能么?要如何实现呢?