ジョブ キューに対して何らかの更新を選択しようとしています。同じテーブルまたはデータベースに影響を与える同時プロセスをサポートするために必要です。このサーバーはキューにのみ使用されるため、キューごとのデータベースが許容されます。当初は以下のようなことを考えていました。
UPDATE state=1,ts=NOW() FROM queue WHERE ID IN (SELECT ID FROM queue WHERE state=0 LIMIT X) RETURN *
これにより競合状態が発生することを読んでいましたが、SELECTサブクエリでFOR UPDATEを使用するオプションがあったことを読みましたが、それにより行がロックされ、スキップしても構わない場所で同時呼び出しがブロックされます次のロックされていない行に移動します。
したがって、私が求めているのは、データベース全体のロックを最小限に抑える必要がある postgres で fifo システムを使用するための最良の方法です。