Что мне нужно:
- обеспечение атомных обновлений (никакая запись не может обрабатываться 2 раза)
- массовое удаление для всех выбранных 1000 строк
@queue = Queue.where("col = 1").limit(1000)
ids = []
@queue.each do |row|
Queue.do_something(row)
ids << row.id
end
Queue.delete_all("id in (#{ids.join(',')}) ")
ЯВЛЯЕТСЯ ТОЛЬКО КАК
Queue.transaction do
@queue.each do |row|
Queue.do_something(row)
Queue.delete(row.id)
end
end