예를 들어, 어떤 거래소에서는 종종 제어할 수 없는 오류가 발생하여 로봇이 중단됩니다. 따라서 FMZ 플랫폼의 exit 또는 onerror 함수를 통해 오류 보고를 모니터링하고, 확장 API를 사용하여 자동으로 다시 시작하려고합니다. 세 가지 방법을 시도했습니다.
1 JS의 Try catch 방식, 하지만 catch가 안 되는데, 몇몇 인터페이스가 오류를 냈어요.
2 , 관리자의 掃尾 함수 exit, 실행이 가능하지만, 다시 시작할 수 없을 때 main 함수에 들어갑니다.
3 , js 함수 ᅳ onerror, 압축 루트는 반응하지 않았다 ᅳ
그래서 API에 대한 모니터링을 하는 것이 더 좋은 방법이 있을까요?
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

