Добрый день !
Я хочу организовать потоковый вывод - делаю это так 
1) на основной странице у меня скрипт вида 
<script>
                    var content = document.getElementById('content');
                    var source = new EventSource('/stream?message=${message}');
                    source.onmessage = function(event) {
                        content.innerHTML += event.data + '<br>';
                    };
</script>
Сам генератор, как Python-программа выглядит так --
def stream(self, message):
        # Настраиваем заголовки для потокового вывода
        cherrypy.response.headers['Content-Type'] = 'text/event-stream'
        cherrypy.response.headers['Cache-Control'] = 'no-cache'
        # Генератор для потокового вывода данных
        def generate():
            for i in range(5):
                yield f"data: Processing {message} - step {i+1}\n\n"
                time.sleep(1)
            yield f"data: Finished processing {message}\n\n"
        return generate()
Проблема состоит в том, что после первого вызова stream, он, как положено, выводит 5 сообщений + финальное сообщение, однако, после этого, снова срабатывает функция generate, хотя нового входа в stream не было, вновь печатается 6 сообщений, и так до бесконечности.
Почему это происходит и как это исправить, чтобы исполнение generate происходило только один раз ?