2014-10-29 2 views
1

Мне было интересно, есть ли способ включить или отключить все заданные весенне-летные задания программным путем? Например, когда я развертываю свое приложение, база данных пуста, и в этот момент выполняются мои задания и исключение исключений. Я хотел бы, чтобы задания были отключены до тех пор, пока в базе данных не будут заполнены некоторые данные (пока не появятся определенные таблицы). Это возможно?Disable Spring Batch Jobs

+0

Это действительно вопрос оркестровки. Как начинаются ваши рабочие места в первую очередь? Независимо от того, что требуется, чтобы задержать запуск до тех пор, пока не возникнут соответствующие условия ... –

+0

Hi Michael, благодарит за ваш ответ. Мои задания запускаются с помощью cron-trigger. Каждый экспортирует продукты в SOLR каждую минуту (он находит только измененные продукты), и есть один экспорт ВСЕ продуктов в SOLR, который запускается один раз в день в полночь. –

+0

Я предполагаю, что cron-trigger создается при запуске прямо сейчас, что вызывает у вас проблему. Вы можете использовать что-то вроде «Poller» из Spring Integration для опроса для того, чтобы было безопасно запускать задания, когда возникает условие, а затем программно планировать задания. –

ответ

2

Рассматриваете ли вы этот вопрос? How Spring Boot run batch jobs Вы можете отключить работу при запуске, добавив spring.batch.job.enabled=false в файл application.properties.
Затем вы можете использовать JobLauncher для запуска задания, когда ваша база данных инициализирована.