Par exemple, certaines bourses rencontrent souvent des erreurs incontrôlables qui entraînent l'arrêt du robot. Par conséquent, nous voulons surveiller les signalements d'erreurs via la fonction d'exit ou d'onerror de la plate-forme FMZ, puis le redémarrage automatique en étendant l'API.
1, JS: essaie de capturer les méthodes, mais certaines interfaces ne sont pas capturées, etc.
2/ La fonction de balayage de l'administrateur est exit, elle peut être exécutée, mais ne peut pas être redémarrée pour entrer dans la fonction main.
3 , la fonction js ≠ onerror, la racine n'a pas répondu ≠
Alors, y a-t-il une meilleure façon de surveiller les erreurs de l'API et de continuer à fonctionner ?
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

