EnterSandman
@EnterSandman
Эникей

Как заблокировать строку в mysql?

Здравствуйте
Пишу проект с асинхронной очередью.
Думаю как источник заданий использовать таблицу mysql вида
Id | ответ воркера
Соответсвенно стоит вопрос как отдавать каждое задание только одному воркеру - думаю что блокировкой записи и вижу два варианта:
Добавить слолбец с состоянием 0/1, но боюсь что два или более воркера успеют схватить/обновить строку
Можно ли блокировать строку на запись/чтение и кариант наиболее кошерен
Спасибо
  • Вопрос задан
  • 1401 просмотр
Пригласить эксперта
Ответы на вопрос 2
@maxtm
Make money, not job
Правильнее будет сделать так, чтобы воркеры принимали таску от мастер-процесса, чем они сами бы брали таску из бд.
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
UPDATE `table` SET `lock` = 1 WHERE @id := `id` AND `lock` = 0 AND ... LIMIT 1
SELECT * FROM `table` WHERE `id` = @id
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы