трубопровод к вводу скриптов - PullRequest
3 голосов
/ 25 ноября 2011

Я пишу отличный скрипт, который получает аргументы из строки или из трубы.

Прежде всего, доступ к трубе или аргументам отличается:

  • вы получаете доступ к аргументам из args переменной
  • Вы получаете доступ к трубе через System.in.text

так что все нормально работает в моем скрипте

НО

когда я запускаю скрипт удаленно (т.е. groovy http://mysite.com/myscript.groovy), конвейер SOMETIMES не работает, то есть ничего в канале (System.in.text пуст), но иногда это работает.

Мне удалось исправить задержку чтения System.in на 300 мс (т.е. команда sleep 300)

Интересно, что-то пропущено при чтении канала или я должен сообщить об ошибке как-то

Пример сценария: https://github.com/fix/groovy-spark/blob/master/Spark.groovy

Ответы [ 2 ]

1 голос
/ 04 января 2012

Попробуйте обернуть его так:

BufferedReader Sin = new BufferedReader(new InputStreamReader(System.in))

... из документации по API Java.

Затем, как обычно, выполните Sin.text

0 голосов
/ 02 декабря 2017
def input = System.in.newReader().readLine()
...