2013-08-05 2 views
1

Я хочу использовать верблюда в своем проекте, чтобы проверить последнюю измененную дату файла каждые xx минут, используя службу расписания/таймера верблюда.Дата последнего изменения файла верблюда часто используется службой планирования

Я прочитал документ для файлового компонента, кажется, что есть функция опроса, однако есть также компонент таймера для верблюда.

У кого-нибудь есть пример кода, если я хочу сделать это?

ответ

3

Я бы использовал конечную точку конечного пользователя.

Что-то вроде этого:

file:c:/foldername?delay=5000 

Это будет сканировать папку, каждые 5 секунд для файлов и для каждого файла отправить сообщение на маршруте.

Возможно, вам потребуется сохранить предыдущие временные файлы где-нибудь, например текстовый файл или базу данных, а затем сравнить измененную переменную, переданную в сообщении, с измененной, сохраненной в базе данных или файле.

Грубый пример этого будет выглядеть следующим образом:

<route id="CheckFileRoute"> 
    <from uri="file:d:/RMSInbox?delay=5000&readLock=changed/> 
    <log message="${ file:modified }/> 
    <bean ref="CompareDates"/> 
    </route> 

Файл потребитель будет разместить много информации относительно файла в заголовке, такие как дата изменения. Перейти прочитать по этой ссылке для получения более подробной информации о переменных в заголовке http://camel.apache.org/file2.html

Сравнения даты боб будет Java класс, который действует как процессор, который будет иметь структуру, как это:

public class CompareDates { 

@Handler 
public void CheckDates 
(
     @Body Object msgbody 
     , @Headers Map hdr 

) 
{ 

      Date newDate = (Date)hdr.get("CamelFileLastModified"); 
      Date oldDate = readfromfileorDatabase 
      if(newDate>oldDate) 
      { 
       //the date has changed look busy 
      } 
} 

Надежда это получает вас собирается.

Смежные вопросы