Django MySql Row Locking - PullRequest
       1

Django MySql Row Locking

0 голосов
/ 17 января 2012

Я собираюсь использовать модель, поддерживаемую таблицей mysql, в качестве очереди заданий, совместно используемых параллельными процессами.Я пытаюсь избежать ситуации, когда 2 процесса выполняют одну и ту же работу.Первой мыслью было бы добавить грязный флаг в строку (задание), которая помечается, когда процесс выполняет это задание.Но тогда у нас есть классическая проблема, когда проверка грязного бита - это отдельная операция, отличная от записи грязного бита.Как я мог сделать 2 операции атомарными?

В идеале каждая строка должна иметь спин-блокировку, которая может быть заблокирована процессом, обновляющим строку, и не позволяющим другим процессам получить доступ к строке.Поддерживает ли Django эту концепцию?

1 Ответ

1 голос
/ 17 января 2012

QuerySet.select_for_update() в версии для разработчиков.В стабильных выпусках вам нужно использовать необработанные запросы самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...