2015-03-11 2 views
0

Я использую планировщик кварца, чтобы запланировать процесс загрузки файла из SFTP. Работа запускается каждые 2 часа. Но иногда из-за огромного размера файла, загрузка занимает больше времени, и до его завершения процесс перезапускается. Есть ли у них какой-либо способ: может удерживать планировщик для повторного запуска такой же работы, пока предыдущий процесс не завершит обработку?Планировщик Quartz для запуска задания снова до обработки предыдущей обработки задания

I м используя кварц 1.8.5. Ниже код

<flow name="quartzCronModel"> 
    <quartz:inbound-endpoint connector-ref="Quartz" 
     jobName="cron-job" cronExpression="${database_download_timer}" 
     encoding="UTF-8"> 
     <quartz:event-generator-job /> 
    </quartz:inbound-endpoint> 
    <component doc:name="Download Database" 
     class="com.org.components.sftp.FileTransfer"> 
     <method-entry-point-resolver 
      acceptVoidMethods="true"> 
      <include-entry-point method="execute" /> 
     </method-entry-point-resolver> 
    </component> 
</flow> 

Я читаю выражение хрон из файла свойств.

ответ

1

Ваша задача необходима для реализации интерфейса StatefulJob. Это интерфейс маркера, который говорит Quartz, что он не должен запускать задание, если он все еще работает. Другими словами, это предотвращает одновременное выполнение задания.

+0

благодарит за ответ. Не могли бы вы прислать мне пример. – user2617666

+0

Google "quartz statefuljob example", и вы получите много примеров. Например, это должно быть полезно: https://vageeshhoskere.wordpress.com/2011/02/10/stateful-jobs-using-quartz-scheduler/ –

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