問題タブ [round-robin]
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.
sql - ラウンド ロビン選択で開始値を指定した Order by ステートメント
すべての行が配信するメールである SQL Server のテーブルがあります。すべての電子メールはドメインに属しています。
日付列に基づいて送信する最初の電子メールを選択する必要がありますが、ラウンドロビン方式で使用された最後のドメインから開始して、ドメインごとに交互に送信したいと考えています
テーブル:
このクエリを使用すると、必要に応じて並べ替えることができますが、開始値で並べ替える方法が見つかりません。
私は次のようなことを言う必要があります:
mysql FIELD() 関数に似たもの
一定の間隔でこのクエリを実行する必要がありますTOP 1
。期待される結果は、存在する場合は前の行のドメイン > ドメインで最も古い行を取得するか、ドメイン = 1 で再起動することです。
ドメイン上の循環ソートのように
scala - メッセージを次のラウンド ロビン ルートに転送する
特定の API を使用するために、離れたサーバーに接続するこの Play アプリがあります。離れたサーバーへのリクエストの負荷を分散するために、複数のアカウントを同じサーバーに接続しています。各アカウントは、指定された回数だけ API をクエリできます。各アカウントは Akka アクターによって処理され、これらのアクターは Akka ラウンド ロビン ルーターの背後にあります。したがって、リモート API を使用したい場合は、必要な情報を RR ルーターに「問い合わせ」ます。
この実装は、1 つのアカウントが切断されるまで問題なく動作します。基本的に、1 つのアカウントが切断されると、アクターは「接続に問題がありました」という特定のオブジェクトを返します。次に、RR ルーターに 2 番目のリクエストを再度送信して、別のアカウントで処理させます。
私の質問は、「再試行」ロジックを router-routee グループの外側に置く代わりに、内部で行う方法はありますか? たとえば、ルーターレベルで、これらの「接続に問題がありました」というメッセージを処理するロジックを定義して、処理される次のルートにリクエストを自動的に転送し、すべてのルートが処理されたら最終応答を返すことを考えています。試してみましたが、どれもうまくいきませんでしたか?
Akka はこれを達成するための簡単な方法を提供していますか、それとも実装を続行する必要がありますか?
algorithm - 大きなクォンタムがある場合のラウンドロビンと同等のアルゴリズム
キャンパス内での配置の準備をしていて、Citrix の前年の論文でこの質問を見つけました。
ラウンド ロビンに大きなクォンタムがある場合は、次のようになります。
- 先着順
- 最短の仕事が最初
- 最近使用されていない
- どれでもない
答えは「1」(先着順)であるべきだと思いますが、もっと明確にする必要があるか、間違っている可能性があります。ありがとう
java - ラウンド ロビン アルゴリズムの実装 Java
私の問題はかなり単純だと思いますが、このアルゴリズムをコードに変換できないように見えるため、いくつかの異なる視点が必要だと感じています。
n チーム (この場合は 10 チーム) がラウンド ロビン形式でプレーするスポーツ チームのスケジュールを作成する必要があります。ルールは基本的なラウンドロビン形式に従います。この形式では、1 つのチームが特定の時間に他の 1 つのチームとしか対戦できず、すべてのチームが他のすべてのチームと 1 回対戦する必要があります。
アルゴリズムは、チーム 1 をその場で保持し、残りを時計回りに回転させることであることがわかりました。ダミーチームを使用して、n の奇数を処理できます。この問題は、アルゴリズムの「時計回り」の部分で発生します。時計回りに回転するという概念をチームにどのように翻訳できるかわかりません。たとえば、配列 TeamArray に分割し、TeamArray[0] が TeamArray[10] などを第 1 週にプレイする場合、第 2 週にそれらを時計回りに移動させるにはどうすればよいでしょうか?
私は配付資料の答えを探しているのではなく、このアルゴリズムを創造的な方法で見て、チームを時計回りに動かすという概念を翻訳できるようにするための助けを求めています.
私はすべての助けに感謝し、私の最初の質問で混乱を招く可能性のあるものは何でも喜んで答えます. ありがとう!
java - Java でのラウンド ロビン スケジューリング アルゴリズムの実装
何時間もの頭脳の後、私は最終的にクラッシュし、ラウンドロビンを Java に実装する方法がわからないという結果になりました。私はさまざまなアプローチを試しましたが、私が持っている最も近いもの..よく例を挙げて説明します..
(0,5;6,9;6,5;15,10)
最初に、位置の0-2-4
要素が到着時間を表し、位置の要素が1-3-5
バースト時間を表すこの数字の行があります。私のコードはこれまでのところ、この入力がコンストラクターに付属する Process というクラスに変換されていますProcess(String name, int AT, int BT)
。でプロセスを分離しましたArrayList
。だから今、私はArrayList alst = [P0,P1,P2,P3]
where P0
hasAT 0
などBT 5
を持っています`..
時間の経過とともにカットされたプロセスのリストを返すメソッドを作成しました-たとえば(0,5;6,9;6,5;15,10)
、結果が得られる場合:[P0,P0,P1,P1,P1,P2,P2,P3,P3,P3,P3]
したがって、ラウンドロビン方式は、すべてのプロセスが実行のために量子時間を取得する方法であり、私が選択した 3.
- AT 0 & BT 3 の P0 が登場 - 最終リストに追加 (経過時間 = 3)
- AT 0 & BT 2 の P0 が登場 - 最終リストに追加 (経過時間 = 5)
- P0終了
- AT 6 & BT 3 の P1 が登場 - 最終リストに追加 (経過時間 = 9)
- 次の P1 がキューに追加されます
- AT 6 & BT 3 の P2 が登場 - 最終リストに追加 (経過時間 = 12)
- 次の P2 がキューに追加されます
- AT 6 & BT 3 の P1 がキューから入ってくる - 最終リストに追加 (経過時間 = 15)
- 次の P1 はキューに入る
- P3 が到着し、最終リストに追加されます (経過時間 = 18)
- P1 はキューから取得されます - 最終リストに追加されます
そして、それは私の心がクラッシュしたように感じるポイントであり、それらをキューに入れる方法がわかりません.
結果は次のようになります。[P0,P0,P1,P2,P1,P3,P2,P1,P3,P3,P3]
最初の回答に基づいてコーディングしたもの。まだうまくいきません..
algorithm - ゲームを均等に複製して、参加者ごとに最大額に達する
私は、8 チームに必要なすべてのゲーム (参加者ごとに 7 ゲーム) を作成するラウンド ロビン トーナメントを開催しています。ただし、参加者ごとに 10 ゲームが必要です。つまり、マッチアップを複製する必要があり、その上、1 と 5 は互いにプレイできません。以下のデータから、参加者ごとに生成したゲーム (ゲームの数) を、作成された順序 (ラウンド) で確認できます。
私は、マッチアップを複製し、マッチアップを 3 回複製し、参加者ごとに 10 ゲームを保持し、1 と 5 が互いにプレイしないようなマッチアップがないように、マッチアップを均等に分配するための最善の方法を見つけようとしています。これを理解する方法についての提案は役に立ちます。これは、他の可能性がまだ機能する一般的なソリューションである必要もあります。