Wiederholen Sie die Funktion für die Schnittstellenfehlertoleranz.
Der Rückgabewert der Rückruffunktion bei Ausführung. Alle Typen werden vom System unterstützt, außerlogischer falscher WertundNull-Wert.
_C (((pfn) - Ich bin nicht derjenige.
Der Parameterpfn
ist eine Funktionsreferenz, die eineRückruffunktion- Ich weiß.
Pfn
wahr
Funktion
Parameter bisRückruffunktionen, kann es mehr als einen Parameter gebenarg
. Art und Anzahl der Parameterarg
Die Ergebnisse der StudieRückruffunktion- Ich weiß.
Arg
falsche
String, Zahl, bool, Objekt, Array, Funktion, alle Typen werden vom System unterstützt, z. B. Nullwerte
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);
}
Für fehlertolerante Funktionen ohne Parameter:
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);
}
Für Funktionen mit fehlertoleranten Parametern:
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
Es kann auch für die Fehlerverträglichkeit von benutzerdefinierten Funktionen verwendet werden:
Die_C()
function wird die angegebene Funktion aufrufen, bis sie erfolgreich zurückgegeben wird (die Funktion, auf die der Parameter verweistpfn
ErträgeNulloderfalscheWenn Sie angerufen werden, versuchen Sie es erneut.pfn
) Zum Beispiel_C(exchange.GetTicker)
. Das Standard-Wiederversuchsintervall beträgt 3 Sekunden, Sie können die_CDelay()
Funktion, um das Wiederholungsintervall festzulegen._CDelay(1000)
Mittel zur Änderung des Wiederversuchsintervalls der_C()
Funktion auf 1 Sekunde.
Die Fehlertoleranz kann für folgende Funktionen durchgeführt werden, jedoch nicht auf diese beschränkt:
exchange.GetTicker()
exchange.GetDepth()
exchange.GetTrades()
exchange.GetRecords()
exchange.GetAccount()
exchange.GetOrders()
exchange.GetOrder()
exchange.GetPositions()
Alle können von der_C()
Die Funktion der Fehlerverträglichkeit_C()
Die Funktion ist nicht auf die oben aufgeführte Funktion Fehlertoleranz beschränkt, der Parameterpfn
ist eine Funktionsreferenz und nicht ein Funktionsanruf.
Beachten Sie, dass es_C(exchange.GetTicker)
, nicht_C(exchange.GetTicker())
.