私は内部生産のために、スケジューラーに取り組んでいます。問題のストーリーは次のとおりです。さまざまなステーション「マシン」に送信される受信「ジョブ」があります。mysql データベースにジョブのリストを保存しています。私は生産コーディネーターのためのインターフェースを作りたいと思っています: ジョブを正しいマシンに入れる責任者です - これは、入ってくるジョブのリストと、そのマシンのジョブキューを表す各マシンのリストで構成されます.
私たちができるようにする必要があるいくつかのアクション:キューの更新を適切に行います(再番号付けのカスケードは、私が避けようとしているものです)。
私が心配しているのは、100000 のジョブを取得した場合、またはマシンの数を大幅に増やした場合のスケーラビリティです。
私たちが検討したことのいくつか - まだ議論中です: 次の構造を持つテーブルの作成: jobkey、machineid、status、queposition。queposition が machineid に関して一意であるという制約があります。これは任意の数のマシンに適していますが、キューをすばやく更新するには、マシン ID ごとにすべてのデータベースを検索する必要があり、並べ替えはそれほどきれいではありません。もう 1 つの考えは、リンク リストをシミュレートする prekey フィールドと postkey フィールドを用意することでした。この場合、prekey は最後の que エントリへのテーブル キーであり、post は次のエントリを指します。これでいくつかの問題は解決しますが、キューを表示することで問題を解決できます。
これらのどちらも問題を完全に解決していないようです。
これは十分に一般的な問題のように思えますが、que's に対する適切な解決策があると確信しています。また、前述のリストの順序を競合せずに変更することもできます。javascript、php、および mysql で動作します。