【发布时间】:2016-08-16 02:59:40
【问题描述】:
我已使用duff 在我的文件系统中创建重复文件报告:
duff ~/Photos > ~/Photos/duplicates.txt
我已经编写了一些 groovy 脚本来将此报告转换为 HTML 页面,我可以在其中在浏览器中查看重复的照片:
cat duplicates.txt | filter_non_existent.groovy | duff_to_json.groovy | json_to_html.groovy > duplicates.html
大约 50% 的时间,它运行良好,没有任何问题。
有时我的一些脚本无法开始执行,或者运行速度很慢。为什么会这样,我能做些什么来防止它? (为什么像 grep 这样的“专业编写的”命令行程序不会遇到这个问题?)
更多信息
- 我延迟每个脚本的启动,直到它接收到标准输入(而 无数据,休眠 2.5 秒)。饥饿更加频繁 当睡眠间隔较短时
- 我连接在一起的管道越多,它发生的频率就越高(如果我只是在
cat之后执行我的脚本之一,我永远不会遇到问题) -
这是我的每个脚本使用的模板(我使用 groovy 运行时,但坚持使用纯 java 语法):
public static void main(String[] args) 抛出 IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while (!br.ready()) { Thread.sleep(2500L); } while (br.ready()) { String inputLine = br.readLine(); // Do stuff }}
【问题讨论】: