1

私のサービスでは数十の API 呼び出しを行う必要がありますが、どの呼び出しをどのくらいの頻度で行うかは、現在システムにログインしているユーザーによって異なります。

そのため、現在 500 人がシステムにログインしている場合、彼らのリクエストは現在ログインしていない人よりも優先されます。

どのように、またはどのような種類のコレクションをスレッド セーフに使用する必要があるか、ユーザーの優先順位に基づいて反復および変更できるもの、およびどの呼び出しを最初に行う必要があるかに基づいて決定するその他のスコア。

スレッドのセットプールを作成するためにexecutorserviceを使用することをお勧めしますか?

4

1 に答える 1

1

コレクションに関する最初の質問については、PriorityQueueのスレッドセーフ バージョンであるPriorityBlockingQueueを見ることができます。コンパレーターを実装して、現在オンラインのユーザーのアイテムに優先順位を付けることができます。私はそれを使用していませんが、ユーザーの現在の状態に基づいて順序を動的に変更することはできませんが、アイテムがキューに追加されたときのユーザーの状態に基づいて順序付けられると思われます。

そのコレクションを使用すると、executorservice またはその他のデバイスを使用して、キューからプルし、API 呼び出しを実行できます。

于 2012-11-30T03:08:35.393 に答える