Springを使用して残りのAPIを使用してアプリケーションを構築しています。休止APIメソッドがキューに空きがあるときに待機するバックグラウンドワーカースレッドと、空になっていないときにタスクを1つずつ実行するタスク(単なるオブジェクト)を追加する可能性が必要です。タスクを1つずつ実行することは絶対に必要で、1秒から数分かかることがあります。待機する必要はありません。残りのAPIを介して結果を送信する必要はありません。タスクが完了したという情報のみです。backgorundワーカースレッドを使用したSpring Rest APIアプリケーション
基本的に私のアイデアは、どのようにコード化するのではなく、これは並行性パッケージとエグゼキュータ...):
public class Worker implements Runnable {
private Queue<...> queue;
public addTask(... task) {
this.queue.add(task);
this.notify();
}
@Override
public void run(){
check task queue
- wait() if empty
- execute task if not empty
}
}
私は春との組み合わせで試したことはありません。
私はいくつかのJavaの知識がありますが、私はすでにいくつかのデスクトップアプリケーションを並行性を使用して作成していますが、春の経験はないので、正しい方向を指すだけです。
これは非同期メソッド(@Async)を使用して行うことができますか?または定期的にキューをチェックする同期スレッド(コンポーネント)を作成することは許容されますか?
ありがとうございました。
に注入できるように、ビーンとしてのBlockingQueueを作成する必要があります[OK]を、これは実際に参考になっおかげで、しかし、事あります私は、そのキュー(または他のもの)から取る(または保持する)ワーカースレッドを作成する必要があります。たぶん私は他の人のために私の質問を明確にしていないし、それをrewiteする必要がありますか? – YoungPetr