Прерывание ответа при выходе клиента из потока (StreamHttpResponse) (Django, Google Cloud Run)

Я использую StreamHttpResponse для передачи двоичных данных клиенту. Сначала мне нужно установить время начала и окончания потока. Локально, когда клиент покидает поток (я закрываю страницу браузера), срабатывает метод close(). Из кода django (из класса HttpResponseBase):

    # These methods partially implement the file-like object interface.
    # See https://docs.python.org/library/io.html#io.IOBase

    # The WSGI server must call this method upon completion of the request.
    # See http://blog.dscpl.com.au/2012/10/obligations-for-calling-close-on.html
    def close(self):
        for closer in self._resource_closers:
            try:
                closer()
            except Exception:
                pass
        # Free resources that were still referenced.
        self._resource_closers.clear()
        self.closed = True
        signals.request_finished.send(sender=self._handler_class)

В Google Cloud Run этот метод вызывается только через 300 секунд (независимо от того, слушает клиент поток или нет). Можно ли вызывать метод close(), когда клиент покидает поток на сервере?

Я ожидал, что ответ будет прерван на сервере, как только клиент покинет поток (веб-страницу). Локально это сработало.

Вернуться на верх