2016-09-27 2 views
-1

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

Задачи

  1. Всегда проверяйте на последовательный порт, если есть некоторые данные для чтения. Кто-то может пройти карточку при сканировании. Я думаю, что эта задача должна начинаться с приложения.

  2. Если приходит новый участник, мне нужно отсканировать карту, задача 1 должна быть приостановлена ​​/ остановлена ​​... если карта не назначена никому, ей присваивается этот член. Перезапуск Задача 1.

Я не знаю, что это лучший способ сделать задачу 1, чтобы облегчить задачу 2.

Я вижу, есть много возможности: @Scheduled, TaskScheduler который будет выполнять поток. ..

Любые предложения?

ответ

1

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

+0

нормально, но это на самом деле не отвечает на вопрос ... Конечно, задача будет называться услугой, чтобы сделать это ... Важный thinkg - как вызвать задачу 1 и как задача 2 поставит задачу паузы 2 –

+0

Если поток будет напрямую вызывать какой-либо метод обслуживания, он не вернется, чтобы прочитать что-либо, пока метод службы не вернется, это нормально? –

+0

Хорошо, я дам больше информации. Задача 1, считывать последовательный порт, если сканирование карты, значение отправляется на уровень обслуживания, который проверяет базу данных, если идентификатор назначен ... задача 2, если новый пользователь пришел, карта отправляется на пользователь, идентификатор карты неизвестен, поэтому пользователь должен выполнить сканирование до того, как он будет назначен ему. Когда пользователь передает свою карту, я не хочу запускать задачу 1 ... это два разных сценария. –

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