функция генератора django не работает с реальным сервером - PullRequest
0 голосов
/ 10 июля 2011

У меня есть код, написанный на django / python. Принцип состоит в том, что HTTP-ответ является функцией генератора. Он выводит вывод подпроцесса в окно браузера строка за строкой. Это работает очень хорошо, когда я использую тестовый сервер django. Когда я использую реальный сервер, он выходит из строя / в основном это просто мячи, когда вы нажимаете «Отправить» на странице раньше.

@condition(etag_func=None)
def pushviablah(request):
    if 'hostname' in request.POST and request.POST['hostname']:
        hostname = request.POST['hostname']

        command = "blah.pl --host " + host + " --noturn"
        return HttpResponse( stream_response_generator( hostname, command ), mimetype='text/html')

def stream_response_generator( hostname, command ):
    proc = subprocess.Popen(command.split(), 0, None, subprocess.PIPE, subprocess.PIPE, subprocess.PIPE )
    yield "<pre>"
    var = 1
    while (var == 1):
        for line in proc.stdout.readline():
            yield line

У кого-нибудь есть предложения о том, как заставить это работать на реальном сервере? Или даже как отлаживать почему не работает?

1 Ответ

0 голосов
/ 11 июля 2011

Я обнаружил, что функция генератора на самом деле работает, но должна завершиться, прежде чем httpresponse откроет страницу на экране.Я не хочу ждать, пока он завершится, прежде чем пользователь увидит вывод.Я хотел бы, чтобы пользователь видел вывод по мере продвижения подпроцесса.

Мне интересно, может ли эта проблема быть связана с чем-то в apache2, а не django.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...