我(为了争论)有 1000 条记录和 10 名 Heroku 工作人员在运行。我想让每个工人处理不同的记录集..
我现在拥有的东西很好,但还不够完整。
sql = 'update products set status = 2 where id in
(select id from products where status = 1 limit (100) ) return *'
records = connection.execute(sql)
这工作得很好..我得到 100 条记录,同时,我确保我的其他工作人员没有得到相同的 100..如果我把它扔到一个 while 循环中,那么即使我有 20000 条记录和 2 个工作人员,最终它们都会得到处理。
我的问题是,如果发生崩溃或异常,那么这 100 条记录看起来像是由另一个工作人员处理的,但事实并非如此。
我不能使用事务,因为其他选择会选择相同的记录。
我的问题 其他人使用什么策略让许多工作人员在同一数据集上工作,但记录不同。
我知道这是一个对话问题……我会把它当作社区 wiki,但我再也看不到这种能力了。