فنکشن کی خودکار غلطیوں کی اجازت دینے والی ٹیمپلیٹ

مصنف:صفر، تاریخ: 2016-03-08 17:27:56
ٹیگز:آلہ

اس ٹیمپلیٹ کو کال کرنے پر کلک کرنے سے خود بخود مخصوص API افعال کو دوبارہ آزمائیں اور غلط کریں گے ، متعدد تبادلے کی حمایت کریں


// 模板初始化时调用
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());
}

متعلقہ

مزید

لیملکیا آپ کے خیال میں یہ ممکن ہے کہ ہم ایک دوسرے کے ساتھ مل کر کام کر سکیں؟

مومیکساس کا استعمال کیسے کریں، کچھ سوالات ہیں: 1. Hook ((ApiList.split ((',')); کیا اس طریقہ کار کو اپنی پالیسی میں کال کرنے کی ضرورت ہے؟ اگر سوال نمبر 1 کا جواب ہاں ہے تو کیا اپلی لسٹ کو تفویض کی ضرورت ہے؟

صفرضرورت نہیں، ٹیمپلیٹ میں کال کرنے کے لئے، اپلی لسٹ کو قدر کی ضرورت ہوتی ہے، اور دوبارہ کوشش کرنے کی ضرورت ہے کہ افعال کو لکھنے کے لئے.