2016-09-27 10 views
-1

春のブートWebアプリケーションでは、2つのタスクを実行できる必要があります。読むためにいくつかのデータがある場合継続的なタスクが待機し、中断する

タスク

  1. は、必ずシリアルポートをチェック。誰かがスキャンでカードを渡すことができます。私は、この作業はアプリケーションから始める必要があると思います。

  2. 新しいメンバーが来たら、私はカードをスキャンする必要があります。タスク1は停止/停止する必要があります。カードが誰にも割り当てられていない場合、このメンバーに割り当てられます。 @ScheduledTaskSchedulerスレッドを実行します。再起動タスク1.

が、私は2

タスクを容易にするために、タスク1を行うための最善の方法が何であるかを知らない私は多くの可能性がある参照してください。 ..

何か提案がありますか?

答えて

1

ループ内のシリアルポートからデータを読み取り、有用な情報が役に立つサービスに読み込まれたときに、このデータをイベントとしてディスパッチするスレッドを1つ作成する必要があります。

+0

大丈夫ですが、実際には質問に答えていない...それはタスクがサービスを呼び出すことを確信しています... 重要なのは、タスク1を呼び出す方法とタスク2を一時停止タスク2に入れる方法です。 –

+0

スレッドが直接いくつかのサービスメソッドを呼び出すのであれば、サービスメソッドが返す何かを読み取ることはできません。これは大丈夫ですか? –

+0

よろしくお願いいたします。 タスク1、カ​​ードがスキャンされた場合、IDが割り当てられている場合、データベースにチェックインするサービス層に値が送信されます。 タスク2、新しいユーザが来たら、カードがuser、card idは未知であるため、ユーザーは前もってそれをスキャンしなければなりません。ユーザーがカードを渡すとき、私はタスク1が実行されることを望ましくない...それは2つの異なるシナリオである。 –

関連する問題