Верблюжий план обновляет значение свойства файла cfg - PullRequest
0 голосов
/ 06 декабря 2018

У нас есть маршрут с планировщиком каждые 30 секунд, который считывает значение из файла свойств cfg.Если значение ключа свойства равно «Y», то у нас есть определенные процедуры для выполнения.Если значение ключа свойства равно «N», то мы должны пропустить процесс.У нас есть администраторское веб-приложение для отправки значения на верблюжий маршрут через tcp-связь.

Мой вопрос заключается в том, что при получении значения из внешнего приложения мы должны обновить значение файла cfg в верблюжьем маршруте, мы получаем значениена верблюде, но при обновлении файла свойств cfg мы были поражены.

Я создал тестовый маршрутизатор для справки

<route id="test-route-timer">
        <from uri="timer:foo?period=5s" />
        <setProperty propertyName="callInterfaceProcedure">
            <simple>{{call.interface.procedure}}</simple>
        </setProperty> 
        <log message="${property.callInterfaceProcedure}"/> 
        <setProperty propertyName="callInterfaceProcedure">
            <simple>N</simple>
        </setProperty> 
    </route>

Пожалуйста, советуйте в этом случае.

1 Ответ

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

Предполагая, что ваша cfg содержит проблему в формате ключ = значение, вы можете записать данные в файл, задав тело.

<setBody>
  <simple>callInterfaceProcedure={{call.interface.procedure}}</simple>
</setBody>

, а затем вы можете записать в файл, используя файловый компонент, такой как

<to uri="file:<path cfg>?filename=myprooperties.cfg&append=true

Это продолжит добавлять новые записи в свойствах.Чтобы обойти эту проблему, вы можете загрузить все содержимое файла в память в виде карты, обновить значения и перезаписать содержимое файла.

...