中关村村草 发表于 2011-08-11 14:10

最轻量级的Ruby后台任务

最轻量级的Ruby后台任务


普通情况下ruby调用系统命令行的过程是堵塞的,无论是用system还是``或是exec。
system命令会在命令执行成功后返回true,失败返回nil
不过如果system调用的命令以&结尾,ruby进程不会被阻塞,不管前面的命令是否执行成功都会立即返回true。
所以,史上最轻量级的ruby后台任务诞生了:

Ruby代码system('echo "Hello" > ./system.log && sleep 5 && echo "Hooopo" > ./system.log 2>&1&')ps:经测试,使用``的话即使命令行后面加上&也是会阻塞ruby进程的。


Ruby代码1.`echo "Hello" > ./system.log && sleep 5 && echo "Hooopo" > ./system.log 2>&1&`

sykp241095 发表于 2011-08-11 16:47

挺好!

2gua 发表于 2011-08-12 08:17

村艹又来了哦,嘻嘻。

虫子樱桃 发表于 2011-09-01 03:03

& 是关键,呵呵。谢谢分享经验。

2gua 发表于 2011-09-01 06:53

这个确实很酷的啊!

lxyluu 发表于 2011-09-08 19:19

谢谢分享
页: [1]
查看完整版本: 最轻量级的Ruby后台任务