У меня есть программа python, которая использует ORM django для доступа к db. Программа имеет различные потоки, каждый из которых может потенциально получить доступ к db с чтением или записью. Обратите внимание, что эта программа не является веб-сервером.Безопасна ли ORM нить django?
Является ли поток ОРМ django безопасным?
Может ли он использоваться параллельно из разных потоков в одном и том же интерпретаторе?
Ответ зависит от режима управления транзакциями? версия django? что-нибудь еще?
Из того, что я понимаю, безопасность потока [обеспечена] (https://github.com/django/django/blob/1.5.5/django/db/backends/__init__.py#L141), используя транзакции, которые начиная с версии 1.6, включен [по умолчанию] (https://docs.djangoproject.com/en/dev/topics/db/transactions/#django-s-default-transaction-behavior). Таким образом, в django <1,6 это происходит только тогда, когда вы применяете транзакции вручную. – mariodev
Вероятно, это будет зависеть от вашего драйвера базы данных. Я бы рискнул, что большинство из них * не * потокобезопасны. –
Мне невероятно, что такой базовый вопрос не имеет четкого и хорошо документированного ответа. – Jonathan