Установите флажок при нажатии кнопки отправки и снимите его при нажатии кнопки отпускания.
В зависимости от вашей архитектуры, флаг может быть любым - от логической переменной в вашем коде, специальной записи в вашей базе данных до временного файла.
Когда нажата кнопка отправки, проверьте, установлен ли флаг. Если это так, верните сообщение об ошибке, указывающее, что страница занята.
В псевдокоде:
if (flagIsSet()) {
showPageIsBusy();
} else {
setFlag();
startBatchFile();
}
Не забудьте снять флажок, когда закончится пакетный файл или нажата кнопка разблокировки и где-то в блоке finally
.
Вы также должны убедиться, что только клиент, запустивший пакетный файл, может освободить его и снять флажок.
Как отметил Ави в комментариях, вы также должны помнить о синхронизации доступа к флагу.