2017-01-03 11 views
1

IE. Я реализую сценарий расписания, который содержит блок операторов для выполнения, теперь мне нужно определить, что процесс выполнения должен завершиться в течение 1:30. после 1:30 минут выполнение должно быть остановлено и давать сообщение.Есть ли способ определить максимальную продолжительность выполнения любого сценария расписания?

+0

вы можете использовать функцию JQuery SetTimeout. см. это http://stackoverflow.com/questions/8610272/jquery-settimeout –

+0

Я думаю, что ответ на вопрос http://stackoverflow.com/questions/951021/what-is-the-javascript-version-of-sleep - это то, что вы ищете – Kira

+0

@AkshayTilekar Спасибо за быстрый ответ, но я не могу использовать JQuery в сценарии netsuite. – YNK

ответ

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 
} 

Пользователь может изменить длительность выполнения снаружи в любое время.