2016-04-11 8 views
1

Я хочу создать безгласное приложение, которое будет запрашивать БД в бесконечном цикле и выполнять некоторые операции в определенных условиях (например, извлекать записи с определенными значениями и при обнаружении запуска процедуры отправки электронной почты для каждого сообщения).Spring Boot - бесконечное обслуживание цикла

Я хочу использовать Spring Boot как базу (особенно из-за Actuator, чтобы разрешить выставлять проверки работоспособности), но пока я использовал Spring Boot для создания веб-сервисов REST.

Есть ли какие-либо рекомендации или шаблоны, которые следует соблюдать при создании приложений с бесконечным циклом? Кто-нибудь пытался построить его на основе Spring Boot и может поделиться со мной своей архитектурой для этого случая?

С уважением.

ответ

4

То, что я использую, является брокером сообщений и потребителем, помещенным в приложение загрузки весны, чтобы выполнить эту работу.

+0

Вы означает, что вы используете Spring Integration для создания канала для опроса базы данных, а затем, когда что-то найдено, ваш потребитель выполняет логику найденных строк? –

+0

Спасибо за ваш намек. Наконец, я использовал Spring Integration + Spring Boot. Я использовал JDBC Inbound Channel Adapter для объединения базы данных и написал свой собственный ServiceActivator, чтобы реагировать на найденные строки. Работайте как шарм с небольшим количеством кода. –

7

Не выполняйте бесконечный цикл самостоятельно. Пусть рамки обрабатывать его, используя свои task execution возможности:

@Service 
public class RecordChecker{ 

    //Executes each 500 ms 
    @Scheduled(fixedRate=500) 
    public void checkRecords() { 
     //Check states and send mails 
    } 
} 

Не забудьте включить планирование для вашего приложения:

@SpringBootApplication 
@EnableScheduling 
public class Application { 

    public static void main(String[] args) throws Exception { 
     SpringApplication.run(Application.class); 
    } 
} 

Смотри также:

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