有什么方法可以定义执行任何计划脚本的最大持续时间吗?

时间:2017-01-03 05:17:32

标签: javascript netsuite job-scheduling suitescript

  

IE。我实现了schedule脚本,它包含要执行的语句块,现在我需要定义执行过程需要在1:30分钟内完成。 1:30后执行应该停止并给出消息。

2 个答案:

答案 0 :(得分:3)

Netsuite目前没有针对服务器端脚本的超时方法。您可以做的是设置一个变量来保存结束时间并不时检查它。像这样:

var maxExecutionTime = 90; //In Seconds
var endTime = new Date();
endTime.setSeconds(endTime.getSeconds() + maxExecutionTime);

if(new Date() > endTime){
    //exit
}

答案 1 :(得分:-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
}
  

用户可以随时从外部更改执行持续时间。