問題タブ [queue-table]
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.
queue - テーブルを使用したキュー
テーブルを使用してキューを実装する必要があります。ビジネス要件は、次のジョブを取得するために 5 ~ 10 個のボックスがアクセスする単一のキューを持つことです。1 日あたり 5000 以上のジョブはありません。また、ジョブのバッチは一度に「デキュー」する必要があります。
以前に行ったことがないので、私が遭遇する可能性のある問題領域と問題は何なのかと思っています。誰かがこれに直面した/これを以前に行ったことがある場合は、設計/サンプルの実装、または対処する必要がある問題を教えてください。
ありがとう
sql - プライオリティ キュー テーブルをクエリするための SQL の実行
どのプロセスが最初に実行されるかを処理するために小さなキューを実装しています。これを行うために、データベース内のテーブルを使用しています。テーブルの構造は次のとおりです (SQLite でモックアップしています)。
SQL を記述して、次に実行できるプロセスの行を取得しようとしています。サンプルデータは次のとおりです。
この SQL を使用すると、適切な順序でデータを取得できます。
これにより、優先度番号が最も低い (最も重要な) アイテムが一番上に表示され、それらの優先度番号の中で (タイムスタンプによって) 最も早くキューに入れられたアイテムが一番上に表示されます。
このクエリを実行して最初の行のみを取得することもできますが、キューの先頭にあるプロセスの 1 行を取得する SQL クエリを使用して実行したいと思います (上記の例のデータでは、行id=7)。
自己結合とサブクエリを実行しようとしましたが、メンタルブロックが発生しているに違いありません-正しく取得できないようです.
前もって感謝します!
編集
データベースに依存しないクエリを探していることを忘れていました。私はこれを SQlite でモックアップしていますが、これを DB2 または Oracle で実装する可能性は十分にあります。クエリで "limit 1" タイプの演算子を使用することを考えていましたが、それはデータベース エンジンによって異なります。