先说一下需求吧。假设我有一个脚本叫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
能么?要如何实现呢?