我正在使用 node.js、node-postgres 和 Postgres 组合一个脚本来处理来自表的大量数据。我也在使用集群模块,所以我不会被单线程困住。
我不希望集群中的一个子进程复制另一个子进程的处理。如何更新我刚刚从选择查询中收到的行,而不可能另一个进程或查询也选择了相同的行?
我假设我的 SQL 查询看起来像:
BEGIN;
SELECT * FROM mytable WHERE ... LIMIT 100;
UPDATE mytable SET status = 'processing' WHERE ...;
COMMIT;
对我对 Postgres 和 SQL 的了解不足表示歉意,我以前在一个简单的 PHP Web 应用程序中使用过它一次,而以前从未使用过 node.js。