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