我目前有一个脚本,用于通过访问其配置的后端来远程重启“worker”对象。
我在谷歌浏览器的控制台中运行此脚本,因为我无法访问实际的代码库。当我在谷歌浏览器中运行脚本并且工作者#(见下文)确实存在时,脚本运行良好并且成功重启了工作者。
问题是,当脚本尝试重新启动不存在的工作程序,或者该函数超时时,脚本将停止运行,并且出现“500 Internal Server Error”。我希望脚本继续运行并重新启动我提供给脚本的其他工作人员,尽管出现此错误。
我尝试在脚本的几个不同部分之前和之后添加try {} catch(e){}但是没有成功。有什么办法我可以尝试重写这个代码或任何其他方法,我可以用来忽略这个内部服务器错误,让脚本继续运行?任何建议都将不胜感激。
//Run Script via console in Google Chrome via worker page
var workerIds = [*ALL WORKER IDS ENTERED HERE COMMA SEPERATED*]
var WorkerSetUp = company.module("Configuation").WorkerSetUp;
function restartWorkersRecur(){
if(workerIds.length > 0) {
var wid = workerIds.pop();
console.log("Going to restart: " + wid);
window.setTimeout(function(){
restartWorkerRecur(wid);
}, 5000);
}
else{
console.log("Done");
}
}
function restartWorkerRecur(wid){
var wmModel = new WorkerSetUp;
wmModel.id = wid;
wmModel.fetch({success: function(model){
if(!model.get("KillFlag")){
model.set("KillFlag", true);
model.save([], {success: function(model){
model.set("KillFlag", false);
window.setTimeout(function(){
model.save([], {success: function(model){
console.log("Finished restarting: " + model.id);
restartWorkersRecur();
}});
}, 1000);
}});
}
}});
}
restartWorkersRecur();
*同样,我没有直接访问代码库。我确实有特殊授权,但允许我拉出工作人员ID,然后通过谷歌Chrome重新启动它们。我显然已经改变了一些变量名称。事实上,当工作者存在时,该脚本确实很有用。我只是希望它继续运行,如果工人没有。如果我能提供任何其他信息,请告诉我,任何帮助将不胜感激。重复我也已经尝试过使用基本的try和catch语句而没有运气。