アプリケーションが特定の種類のタスクを送信するという要件があります。このタスクは、クライアントによって送信されます。あまりにも多くのタスクを送信してしまうことがないように、タスクを送信するたびに、実行中のプロセスと、それらが同じクライアントから送信されたかどうかを確認します。その場合、タスクは送信されません。この種のタスクのために水平方向にスケーリングしたいと考えています。したがって、より高い可用性を確保するために複数のワーカーを異なるマシンで実行しますが、タスクの 1 つのインスタンスのみがアクティブに処理され、そのタスクが同じクライアントによって送信された別のインスタンスが処理される前に完了する必要があることを確認したいと考えています。 .
たとえば、提出されているタスクの年表が-
Client 1 submits t1
Client 1 submits t2
Client 2 submits t3
がまだ処理中で、ワーカーが解放された場合は、 ではなくt1
、ピックアップする必要がt3
ありt2
ます。
どうすればこの問題を解決できますか? これらのタスクにかかる時間が分からないため、レート制限はオプションではありません。
ありがとう、