وسائل لوڈ ہو رہے ہیں... لوڈنگ...

_C

انٹرفیس غلطی رواداری کے لئے دوبارہ کوشش کریں.

کال بیک فنکشن کی واپسی کی قیمت جب یہ عملدرآمد کیا جاتا ہے. تمام اقسام نظام کی طرف سے حمایت کر رہے ہیں سوائےمنطقی غلط قدراورnull قدر.

_C(pfn) _C ((pfn،...args)

پیرامیٹرpfnایک تقریب حوالہ ہے، جو ایک ہےکال بیک فنکشن. پی ایف این سچ فنکشن پیرامیٹرزکال بیک افعال، ایک سے زیادہ پیرامیٹر ہو سکتا ہےarg. پیرامیٹرز کی قسم اور تعدادargکے پیرامیٹرز پر منحصرکال بیک فنکشن. ارگ غلط تار، نمبر، بول، آبجیکٹ، صف، فنکشن، تمام اقسام نظام کی طرف سے حمایت کر رہے ہیں، جیسے null اقدار

function main(){
    var ticker = _C(exchange.GetTicker)
    // Adjust _C() function retry interval to 2 seconds
    _CDelay(2000)
    var depth = _C(exchange.GetDepth)
    Log(ticker)
    Log(depth)
}
def main():
    ticker = _C(exchange.GetTicker)
    _CDelay(2000)
    depth = _C(exchange.GetDepth)
    Log(ticker)
    Log(depth)
void main() {
    auto ticker = _C(exchange.GetTicker);
    _CDelay(2000);
    auto depth = _C(exchange.GetDepth);
    Log(ticker);
    Log(depth);
}

بغیر پیرامیٹرز کے غلطی برداشت کرنے والے افعال کے لئے:

function main(){
    var records = _C(exchange.GetRecords, PERIOD_D1)
    Log(records)
}
def main():
    records = _C(exchange.GetRecords, PERIOD_D1)
    Log(records)
void main() {
    auto records = _C(exchange.GetRecords, PERIOD_D1);
    Log(records);
}

ایسے افعال کے لئے جن کے پیرامیٹرز غلطی برداشت کرنے والے ہیں:

var test = function(a, b){
    var time = new Date().getTime() / 1000
    if(time % b == 3){
        Log("Eligible!", "#FF0000")
        return true
    }
    Log("Retry!", "#FF0000")
    return false
}            

function main(){
    var ret = _C(test, 1, 5)
    Log(ret)
}
import time
def test(a, b):
    ts = time.time()
    if ts % b == 3:
        Log("Eligible!", "#FF0000")
        return True
    Log("Retry!", "#FF0000")
    return False            

def main():
    ret = _C(test, 1, 5)
    Log(ret)
// C++ does not support fault tolerance for custom functions in this way

یہ اپنی مرضی کے افعال کی خرابی برداشت کے لئے بھی استعمال کیا جا سکتا ہے:

کے_C()function جب تک یہ کامیابی کے ساتھ واپس آتا ہے (پیرامیٹر کی طرف سے حوالہ دیا گیا تقریب) مخصوص تقریب کو فون کرنے کے لئے جاری رکھیں گےpfnواپسیصفریاغلطجب بلایا جائے گا دوبارہ کوشش کریں گےpfn) مثال کے طور پر_C(exchange.GetTicker). ڈیفالٹ دوبارہ کوشش کے وقفہ 3 سیکنڈ ہے، آپ کو کال کر سکتے ہیں_CDelay()تقریب دوبارہ کوشش کے وقفے مقرر کرنے کے لئے. مثال کے طور پر،_CDelay(1000)کے دوبارہ ٹیسٹ کے وقفے کو تبدیل کرنے کا مطلب ہے_C()1 سیکنڈ کے لئے کام. غلطی رواداری مندرجہ ذیل افعال کے لئے کیا جا سکتا ہے، لیکن اس تک محدود نہیں ہے:

  • exchange.GetTicker()
  • exchange.GetDepth()
  • exchange.GetTrades()
  • exchange.GetRecords()
  • exchange.GetAccount()
  • exchange.GetOrders()
  • exchange.GetOrder()
  • exchange.GetPositions()سب کو بلایا جا سکتا ہے_C()غلطی رواداری کے لئے تقریب._C()تقریب مندرجہ بالا درج تقریب غلطی رواداری تک محدود نہیں ہے، پیرامیٹرpfnایک فنکشن کال کے بجائے ایک فنکشن ریفرنس ہے. نوٹ کریں کہ یہ_C(exchange.GetTicker)نہیں_C(exchange.GetTicker()).
_N _کراس