У меня есть таблица с данными для анализа и рабочий, который берет несколько записей из нее, обрабатывает их и сохраняет их обратно.Он также устанавливает флаг в 'parsed'.
Теперь я хочу запустить несколько экземпляров работника и убедиться, что два работника не выберут одну и ту же строку для обработки одновременно.Поэтому мне нужно как-то его заблокировать.
Я использую django, и из того, что я прочитал в руководстве по MySQL, можно получить блокировку на уровне строк, но я не могу найти ни одного примера, как сделать это правильно.Только один говорит, что он очень медленный :) http://djangosnippets.org/snippets/2039/
У меня могло бы быть другое поле, говорящее 'блокировка до', которое будет меткой времени, обновленной до настоящего момента + X минут после того, как работник выбрал строку.Это сократит время блокировки (непосредственное обновление после выбора) и предотвратит выбор этой строки другим работником, который проверит, не заблокирован ли он, но проблема блокировки между выбором и обновлением все еще существует.
Спасибо!Иэн