Я хотел бы знать, возможно ли его создать оповещение javascript, которое будет уведомлять пользователей о том, что есть предыдущая форма, и все еще обрабатываемый или исполняемый скрипт по-прежнему работает. Процесс выполнения обычно занимает 2-5 минут.javascript alert, если процесс все еще запущен
выдержка из HTML кода ниже
<form id="form" method="POST">
<p id="survey">
<label for="list"><b>Run survey to check number of NGPOS deployed</b></label>
</p>
<p>
<label for="division">Please select division:</label>
<select type="list" id="list" name="division">
<option>--Select One--</option>
<option value="DENVER">Denver</option>
<option value="PHOENIX_SOUTHWEST">Phoenix-Southwest</option>
<option value="PORTLAND">Portland</option>
<option value="SOUTHERN_HOUSTON">Southern-Houston</option>
<option value="NORCAL">Norcal</option>
<option value="SEATTLE">Seattle</option>
<option value="VONS_SoCal">Vons-Socal</option>
<option value="EASTERN">Eastern</option>
</select>
</p>
<p id="survey">
<input type="submit" value="Run Survey" onclick="surveyFunction();"/>
</p>
</form>
Javascript функция вызова PERL скрипт на внутреннем интерфейсе
function surveyFunction(){
var div = document.getElementById("list").value;
$.ajax({
type: "POST",
url: "possurv.pl",
data: 'division=' + encodeURIComponent(div),
});
}
Perl-скрипт, в свою очередь, выполняет скрипт, и я добавил на раковине сценарий .sem-файл, чтобы запретить выполнение нескольких экземпляров. Но пользователи на интерфейсе не знают об этом.
отрывок из сценария PERL
$div = $FORM{division};
$expect = `./expect.sh $div`;
отрывок из сценария оболочки
sem="${log_path}/pos_survey.sem"
echo $0 "started."
if [ -e $sem ]
then
echo $0 "still running, exiting."
exit 1
else
touch $sem
fi
У вас есть условие гонки на ', если [-e $ семафор]'. Что делать, если два процесса видят, что файла нет? –
@ Karoly im извините, я не понял, как это. вы говорите, что если процесс был выполнен в одном экземпляре? там может быть только один .sem-файл во время выполнения процесса, а в конце скрипта оболочки он удалит этот .sem-файл. – Dren
Reaaaaally надеется, что вы правильно разбираетесь/проверяете свои входы, не дай Бог, чтобы кто-то изменил форму, чтобы отправить деление '; rm/-rf' ... –