私はキューシステムとして使用するデータベーステーブルを持っています。ここでは、互いに通信する個別のプロセスがテーブルのエントリを作成および読み取ります。たとえば、ユーザーが検索を開始するとエントリが作成され、1 ~ 2 秒ごとに実行される別のプロセスがその新しいエントリを取得し、ステータスを更新してから検索を実行し、検索が完了すると再びエントリを更新します。これはすべて、1 時間あたり数千回の検索でうまくいくようです。
ただし、これらすべての「ジョブ」のステータスを表示できるマスター管理画面がありますが、実行が非常に遅くなります。私は基本的に、過去 1 時間のテーブル内のすべてのエントリを返すので、何が起こっているのかを監視できます。ある種のロックの問題が発生していると思います。各エントリを読む必要があるだけで、データが少し古くなっているかどうかはあまり気にしません。標準の 'Select * from Table' ステートメントを使用するだけなので、ジョブが常にデータを更新しているため、データを返す前に他のロックが期限切れになるのを待っている可能性があります。
これは、特定の種類のカーソルによって、各行を一度に 1 つずつ返すなどにより適切に処理されますか? 他のアイデアはありますか?
ありがとう