2016-02-25 9 views
1

Я разрабатываю приложение MVC 5, которое имеет требование экспортировать огромные данные в excel, Так что я запускаю это в отдельном потоке и работает как ожидалось. Но когда пользователь переходит к другой странице, экспорт отменяется. Как я могу это достичь. Ваша помощь будет высоко оценена.Экспорт в Excel в качестве фоновой задачи в MVC 5

+0

Ваша фоновая задача отменяется, когда пользователь покидает, или вы просто означает, что пользователь не получает результат, потому что они покинули страницу до результата был готов? –

+0

HI Eric, спасибо за ответ. Я хочу сказать, что пользователь не получил результат, покинув страницу. –

ответ

0

пользователь не получает результат, как он покинул страницу

Типичной стратегия позволяет пользователям получить результат продолжительного процесса заключается в связывании какого-то знак с их обработкой запроса (это может быть идентификатор GUID, идентификатор базы данных и т. д.). Свяжите результат процесса с этим идентификатором.

Простейшей схемой было бы сохранение каждого файла в файловой системе с использованием GUID как части имени файла. Вы также хотели бы иметь таблицу базы данных, связывающую пользователя с идентификаторами GUID 0: N для длительных процессов, которые они запускали, и, вероятно, столбец статуса, указывающий, завершено ли задание. Вы также можете сохранить сгенерированный файл в базу данных. Однако вы сохраняете результат процесса, будьте уверены и предоставляете какой-то механизм периодической очистки старых данных.

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

Обратите внимание, что использование TPL для обработки запроса может быть не лучшим планом. Для получения полного списка альтернатив, проверить

http://www.hanselman.com/blog/HowToRunBackgroundTasksInASPNET.aspx

Смежные вопросы