У меня есть функция python, которая вызывает множество служб и печатает результаты служб, вызываемых в файле журнала. это мой код:
def coordinator():
f = file(path,'a')
sys.stdout = f
/* do a lot of stuff */
f.close()
with open(path) as log:
logs = log.read()
return jsonify(log = logs)
Результат функции возвращается в функцию jQuery getJSON, которая отображает окончательный файл журнала на веб-странице:
$.getJSON('/../coordinator',
{//parameters},
function(data) {
//display data.log
}
);
Моя проблема в том, что пользователь может видеть файл журнала только после завершения выполнения. Есть ли способ отображать логи так, как они пишутся в режиме реального времени??
coordinator
может запустить операцию в фоновом режиме и немедленно вернуться с каким-либо идентификатором файла журнала. Другой метод может быть написан для чтения файла. Существует множество других вариантов, в том числе роскошное промежуточное ПО, которое использует что-то вродеzeromq
для запуска операций и предоставляет издателю возможность отслеживать, как идут операции. - person tdelaney   schedule 20.04.2015