У меня есть таблица задач MySQL для выполнения, каждая строка имеет параметры для одной задачи.
Существует множество рабочих приложений (возможно, на разных компьютерах), выполняющих задачи в цикле.
Приложения получают доступ к базе данных с помощью API-интерфейсов API, основанных на MySQL.
Чтобы выполнить задачу, приложение делает что-то вроде этого:
-
Создайте глобально уникальный идентификатор (для простоты, допустим, это число)
-
UPDATE tasks
SET guid = %d
WHERE guid = 0 LIMIT 1
-
SELECT params
FROM tasks
WHERE guid = %d
-
Если последний запрос возвращает строку, мы владеем ею и имеем параметры для запуска
Есть ли способ добиться такого же эффекта (т.е. "собственный" ряд и получить его параметры) в одном вызове на сервер?