Tài nguyên đang được tải lên... tải...

_C

Thử lại chức năng cho dung nạp lỗi giao diện.

Giá trị trả về của hàm callback khi nó được thực hiện. Tất cả các loại được hỗ trợ bởi hệ thống ngoại trừgiá trị sai logicgiá trị null.

_C (((pfn) _C ((pfn,...args)

Các thông sốpfnlà một tham chiếu chức năng, đó là mộtChức năng gọi lại. pfn đúng chức năng Các thông số đếnChức năng gọi lại, có thể có nhiều hơn một tham sốargLoại và số lượng các thông sốargphụ thuộc vào các thông số củaChức năng gọi lại. arg sai chuỗi, số, bool, đối tượng, mảng, hàm, tất cả các loại được hỗ trợ bởi hệ thống, chẳng hạn như giá trị 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);
}

Đối với các hàm dung nạp lỗi không có tham số:

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);
}

Đối với các hàm có tham số chịu lỗi:

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

Nó cũng có thể được sử dụng cho khả năng chịu lỗi của các chức năng tùy chỉnh:

Các_C()function sẽ tiếp tục gọi hàm được chỉ định cho đến khi nó trả về thành công (chức năng được tham chiếu bởi tham sốpfntrả lạikhônghoặcsaikhi được gọi sẽ thử gọi lạipfnVí dụ:_C(exchange.GetTicker). Khoảng thời gian thử lại mặc định là 3 giây, bạn có thể gọi_CDelay()chức năng để thiết lập khoảng thời gian thử lại._CDelay(1000)có nghĩa là để thay đổi khoảng thời gian thử lại của_C()chức năng 1 giây. Sự dung nạp lỗi có thể được thực hiện cho, nhưng không giới hạn ở, các chức năng sau:

  • exchange.GetTicker()
  • exchange.GetDepth()
  • exchange.GetTrades()
  • exchange.GetRecords()
  • exchange.GetAccount()
  • exchange.GetOrders()
  • exchange.GetOrder()
  • exchange.GetPositions()Tất cả có thể được gọi bởi các_C()chức năng cho dung nạp lỗi._C()chức năng không giới hạn trong chức năng được liệt kê ở trên dung nạp lỗi, tham sốpfnlà một tham chiếu hàm hơn là một cuộc gọi hàm. Lưu ý rằng nó_C(exchange.GetTicker), không_C(exchange.GetTicker()).
_N _ Chữ thập