В нашем приложении есть часто используемый код, который увеличивает столбец, например:
if (r = customer.find_or_generate_reminder)
r.counter += 1
r.save!
end
Мы получаем таймауты ожидания блокировки, поэтому Я думаю о том, чтобы сделать эту операцию атомарной. Наивно, то, что я хочу сделать, выглядит так:
if (r = customer.find_or_generate_reminder)
connection.excute('UPDATE customer_reminders SET counter=counter+1, updated_at=now() WHERE id = ' + r.id)
end
Есть ли способ сделать то же самое в рубиновом мире?