Если вы хотите, чтобы это происходило в реальном времени, вы можете использовать длинный опрос, но есть слишком много дел.
Самый простой способ - использовать отдельный процесс в качестве рабочего и обновить процесс во временный файл. (Этот файл будет содержать только 1 строку, которая является процентом прогресса).
Ваше представление должно просто извлечь файл, прочитать его и вернуть клиенту, как есть. Поскольку информация во временном файле является индикатором выполнения в одну строку (например, «79» для 79%), с Javascript очень легко разобраться.
Затем в браузере вы можете вызывать ваше представление с помощью ajax get request каждые 5 секунд и обновлять индикатор выполнения.