Nhấp chuột để gọi mẫu này sẽ tự động cho phép thử lại các hàm API đã chỉ định, hỗ trợ nhiều sàn giao dịch
// 模板初始化时调用 function init() { // 过滤常见错误 if (EnableErrorFilter) { SetErrorFilter("502:|503:|tcp|character|connection|unexpected|network|timeout|WSARecv|Connect|GetAddr|no such|reset|http|received|EOF|reused"); } // 重定义需要容错的函数 var names = ApiList.split(','); _.each(exchanges, function(e) { _.each(names, function(name) { if (typeof(e[name]) !== 'function') { throw "尝试容错 " + name + " 失败, 请确认存在此API并且输入正确."; } var old = e[name]; e[name] = function() { var r; while (!(r = old.apply(this, Array.prototype.slice.call(arguments)))) { if (Debug) { Log(e.GetLabel(), name, "调用失败", RetryInterval, "毫秒后重试..."); } Sleep(RetryInterval); } return r; }; }); }); Log("容错机制开启", names); } // Test function main() { // 此时GetTicker就不需要重试了 Log(exchange.GetTicker()); }
leilmlBạn có biết sự hỗ trợ cho nhiều chủ đề như exchange.go như thế nào không?
momoxNhững câu hỏi về cách sử dụng: 1. Hook ((ApiList.split ((',')); Liệu phương thức này có cần phải được gọi trong chính sách của mình không? Nếu câu hỏi 1 là Vâng, thì liệu ApiList có cần được gán giá trị không?
KhôngKhông cần, gọi trong mẫu để chạy, ApiList cần gán giá trị, viết các hàm cần thử lại để chạy