IE. Я реализую сценарий расписания, который содержит блок операторов для выполнения, теперь мне нужно определить, что процесс выполнения должен завершиться в течение 1:30. после 1:30 минут выполнение должно быть остановлено и давать сообщение.Есть ли способ определить максимальную продолжительность выполнения любого сценария расписания?
1
A
ответ
3
В Netsuite для серверных скриптов не существует метода тайм-аута. Что вы можете сделать, так это настроить переменную, которая имеет время окончания и проверять ее время от времени. Что-то вроде этого:
var maxExecutionTime = 90; //In Seconds
var endTime = new Date();
endTime.setSeconds(endTime.getSeconds() + maxExecutionTime);
if(new Date() > endTime){
//exit
}
-1
Наконец я нашел одно временное решение.
Я создаю один параметр сценария для скрипта и выбираю максимальное время выполнения в скрипте.
var context = nlapiGetContext();
var maxduration =Number(context.getSetting('SCRIPT', 'custscript_duration') != null ? context.getSetting('SCRIPT', 'custscript_duration') : 0);
var endTime = new Date();
endTime.setSeconds(endTime.getSeconds() + maxduration);
if(new Date() > endTime){
nlapiSendEmail(-5, -5, sub, msg, null, null)
//Break [Exit]
}else{
//Block of statement
}
Пользователь может изменить длительность выполнения снаружи в любое время.
вы можете использовать функцию JQuery SetTimeout. см. это http://stackoverflow.com/questions/8610272/jquery-settimeout –
Я думаю, что ответ на вопрос http://stackoverflow.com/questions/951021/what-is-the-javascript-version-of-sleep - это то, что вы ищете – Kira
@AkshayTilekar Спасибо за быстрый ответ, но я не могу использовать JQuery в сценарии netsuite. – YNK