Por exemplo, algumas exchanges frequentemente apresentam erros incontroláveis, causando a paragem do robô. Portanto, a plataforma FMZ quer monitorar os erros através da função de saída ou onerror, e depois reiniciar automaticamente através da extensão da API.
1 - Tente capturar o método do JS, mas não o capta, alguns erros de interface, etc.
2 , a função de varredura do administrador, exit, pode ser executada, mas não pode ser reiniciada quando entrar na função main <unk> .
3 , função js ≠ onerror, compressão não responde ≠
Então, existe uma maneira mais adequada de monitorar o erro da API para continuar a operar?
function GetTicker() {//获取行情信息并储存
Sleep(200);
var ticker;
for(var j=0;j<3;j++){
var goGetTicker = exchanges[e].Go("GetTicker");//异步去买
if(!goGetTicker)return 0;//网络不行
ticker = goGetTicker.wait(2500);//异步等待结果,1秒超时。Interval=1000
if(typeof(ticker) === "undefined") ticker = goGetTicker.wait(IntervalDB);//超时再等2秒
if(ticker){
HuoCenKline(ticker);
return ticker;//正确出口orders=[];与orders=null;前者orders.length=0;后者orders.length将出错!
}
else Sleep(Math.pow(DB,j)IntervalDB);//休息DB=2的j+1次方秒14+4.53=27.52秒最大等待时间
}
return 0;//接口不行
}//设了超时
谢谢大神。我是小白哈,管理机器人的API我也会这写这段代码。关键是我是一键租用托管者,不太会后端,那段管理机器人的代码是怎么放在服务器呢?是另外新建一个机器人【管理机器人代码】,去管理另一个机器人【策略代码】吗?
收到,多谢,请教下哈,就是比如bitmex的经常过载,导致机器人出现错误停止,针对这类接口报错,怎么容错呢?我用try catch都捕捉不到相应的错误,所以头大
是的,其实初级教程有看过,但其实没解决我的问题。关键是:1.重试函数只适用于FMZ包装后的getticker等函数,我用的多为IO,无法重试。2、try catch,比如setorder,根本catch不到错误,catch里的语句就没执行。3、关于null的判断,前面比如Setorder出错了,机器人直接就停止了,压根就到不了null与否的判断。
- 1

