Вы можете написать (и вставить в стек WSGI) полезную часть промежуточного программного обеспечения WSGI , в котором используется threading.Timer , который регистрирует тот факт, что транзакция превысила 30 секунд (и, конечно, вызывает cancel для объекта таймера при выходе, поскольку в этом случае нечего регистрировать).
Я бы сделал это на уровне WSGI, а не на уровне Django, (а) потому что я более знаком с промежуточным программным обеспечением WSGI и (б) потому что это более общее решение (оно может помочь веб-приложению Django, но также может помочь веб-приложению, использующему любую другую инфраструктуру - использование WSGI гарантируется приложениемДвижок, какой бы фреймворк вы ни решили выложить поверх него).
Вам потребуется немного подправить «30 секунд» для калибровки, потому что, конечно, мощность, доступная память, скорость диска и т. Д.,вашей машины разработки, может не случиться так, чтобы она была точно такой же, как у Google, а также многие подсистемы (особенно хранилище) имеют очень разные реализации "локально в SDK" и "в Google".Все серверы "и в любом конкретном случае может оказаться значительно медленнее (или, возможно, быстрее! -).
Учитывая соображения, приведенные в предыдущем абзаце, на самом деле было бы более полезно иметь промежуточное программное обеспечение просто всегда регистрировать транзакцииобщее истекшее время - таким образом вы можете отслеживать транзакции, которые (хотя они могут завершаться в течение 30 секунд на вашем сервере разработки) занимают сопоставимое время (скажем, 15 или 20 секунд или более), особенно если у них несколько транзакций хранения, которые могут замедлятьсяих на реальных производственных серверах /