Я использую модуль SQL с базой данных mysql. Беру строку из таблицы с минимальной датой. Типа такого:
SELECT * FROM table ORDER BY update_time ASC LIMIT 1
и затем пишу текущее время:
UPDATE table SET update_time=[[TIME]] WHERE id=[[ID]]
После апдейта я уверен, что строка повторно возьмется в самом конце (данные в моем кейсе должны браться по кругу).
Но часто все равно хватает времени, чтобы несколько потоков взяли одну и ту же строку.
SELECT ... FOR UPDATE
приводит к ошибке таймаута.
Как блокировать остальные потоки на время выполнения этих двух запросов?