問題タブ [job-queue]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 最大 1 つの Job を含む JobQueue または「最新のデータで再試行する方法」
REST サーバーに送信したい Observable があります。接続が失敗した場合、永遠に送信を再試行したい。接続障害中にデータが変更された場合は、代わりに新しいデータを送信する必要があります。
これは、容量 1 の JobQueue で実装でき、2 種類のメソッド (forceEnqueue(Job job) と weakEnqueue(Job job)) を提供できると考えました。これで、接続が失敗したときに、ジョブ自体が weakEnqueue() を試行できるようになりました。キューがすでにいっぱいの場合、これは失敗します。新しいデータが利用可能な場合、強制的にキューにプッシュされるため、すでにキューに入れられている可能性のある再試行呼び出しが排除されます。
BlockingQueue または ConcurrentLinkedQueue を使用してこの動作を実装できませんでした。この種の要件をサポートする Java にスレッドセーフなキューがありますか、またはこの問題を間違った方法で解決しようとしていますか?