Долгий процесс с интерфейсом браузера - PullRequest
3 голосов
/ 01 августа 2011

Я использую ASP.NET MVC 3 с C #, и у меня есть процесс, который занимает около 10 минут. Мне нужна помощь, как я могу показать какой-то интерфейс (индикатор выполнения и т. Д.).

Что бы произошло, если бы пользователь выключил браузер? Мой процесс не должен быть остановлен.

Что бы произошло, если бы другой пользователь попытался открыть страницу процесса?

Я начал искать индикатор выполнения jQuery, но получил эти вопросы и искал какую-то помощь.

Спасибо

1 Ответ

1 голос
/ 01 августа 2011

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

Первый вопрос: что произойдет, если пользователь закроет браузер, чтобы решить эту проблему, вам нужно создать систему, чтобы сделать работу на backgroud и оставить браузер, чтобы продолжить. Если вы не можете составить полный график занятий, чтобы сделать ваши работы, простая команда может сделать то же самое, но менее гибко.

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

Вам нужно где-то хранить информацию о результате , например, допустим, что вы выполнили задание за 10 минут, затем сохраните результаты где-нибудь, и пользователь увидит результаты, когда они будут получены, и если он как можно повторить процедуру.

С этим я опишу вам, что вам не нужно полностью отключать страницу, просто сообщение, результат которого все еще работает, или автоматическое обновление страницы каждые 30 секунд, чтобы увидеть, если они сделаны.

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