2013-06-29 2 views
2

Недавно я начал использовать threading.local() как способ для некоторого apis сохранять и получать доступ к состоянию для продолжительности запроса без необходимости доступа к объекту запроса.Django и threading.local() quirks?

Так позволяет сказать, что у меня есть определенный код:

_thread_local = threading.local() 
_thread_local.theme = 'darkblues' 

Как долго, что _thread_local.theme переменная длится? Должен ли я вручную отключить его в конце запроса, например, в обычном промежуточном программном обеспечении? Или он автоматически удаляется Django после завершения обработки запроса?

ответ

1

Это будет длиться до тех пор, пока threading.local() длится , то есть срок службы запроса . После этого ничего особенного не требуется. Django не очень помогает управлять состоянием на локалях потоков, поэтому после завершения запроса все может остаться. Это действительно проблема? Вероятно, вы в конечном итоге установили значение для того, что должно быть в следующем запросе.

 Смежные вопросы

  • Нет связанных вопросов^_^