انٹرفیس غلطی رواداری کے لئے دوبارہ کوشش کریں.
کال بیک فنکشن کی واپسی کی قیمت جب یہ عملدرآمد کیا جاتا ہے. تمام اقسام نظام کی طرف سے حمایت کر رہے ہیں سوائےمنطقی غلط قدراور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())
.