На верблюжьем маршруте создание curl с помощью grep с использованием компонента exec, но grep с $ {HOSTNAME} не работает - PullRequest
0 голосов
/ 13 декабря 2018

На верблюжьем маршруте я делаю скручивание с помощью grep, используя компонент exec, но grep с $ {HOSTNAME} не работает, ниже мой верблюжий маршрут. Пожалуйста, помогите мне с этим.

@Component
public class VideoFilesOperationRoute extends RouteBuilder {

    @Value("${scheduler.cronExpression}")
    private String cron;

    @Override
    public void configure() throws Exception {

        from("quartz2://videoFilesOperations/everydayMidnight?cron=" + cron)
                .to("exec:curl?args= --silent http://localhost:4040/ | grep ${HOSTNAME}&useStderrOnEmptyStdout=true")
                .to("bean:videoFilesOperationImpl?method=videoFilesOperation");

    }
}

Пробная версия ниже решения, но проблема та же:

//Tried this first
List<String> args = new ArrayList<>();
args.add("-c");
args.add("curl --silent http://localhost:4040/ | grep ${HOSTNAME}");
from("quartz2://videoFilesOperations/everydayMidnight?cron=" + cron)
.setHeader(ExecBinding.EXEC_COMMAND_ARGS, constant(args))
.to("exec:/bin/sh")
.to("bean:videoFilesOperationImpl?method=videoFilesOperation");


//Tried this next
from("quartz2://videoFilesOperations/everydayMidnight?cron=" + cron)
.to("exec:scripts/curl.sh")
.to("bean:videoFilesOperationImpl?method=videoFilesOperation");

1 Ответ

0 голосов
/ 14 декабря 2018

Проблема в том, что аргументы команды camel-exec разделены пробелами.Так что ваша попытка передать вывод из curl в grep не будет работать.

Попробуйте что-то вроде этого:

@Override
public void configure() throws Exception {
    List<String> args = new ArrayList<>();
    args.add("-c");
    args.add("curl --silent http://localhost:4040/ | grep ${HOSTNAME}");

    from("quartz2://videoFilesOperations/everydayMidnight?cron=" + cron)
        .setHeader(ExecBinding.EXEC_COMMAND_ARGS, constant(args))
        .to("exec:/bin/sh");
}

Или вы можете просто обернуть команду curl & grep в сценарий оболочки и получитьверблюд вербует это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...