Intentar de nuevo la función de tolerancia a fallas de la interfaz.
El valor de retorno de la función de llamada de retorno cuando se ejecuta. Todos los tipos son compatibles con el sistema exceptovalor lógico falsoyvalor nulo.
- ¿Qué es eso? - ¿Por qué no lo haces?
El parámetropfn
es una referencia de función, que es unFunción de devolución de llamada- ¿ Por qué?
Pfn
verdadero
Función
Parámetros paraLas funciones de devolución de llamada, puede haber más de un parámetroarg
Tipo y número de parámetrosarg
dependerá de los parámetros de laFunción de devolución de llamada¿ Qué pasa?
el
falsos
cadena, número, bool, objeto, matriz, función, todos los tipos son compatibles con el sistema, como valores nulos
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);
}
Para las funciones tolerantes a errores sin parámetros:
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);
}
Para las funciones con parámetros tolerantes a errores:
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
También se puede utilizar para la tolerancia a fallos de las funciones personalizadas:
El_C()
función seguirá llamando a la función especificada hasta que devuelva con éxito (la función a la que se refiere el parámetropfn
las devolucionesNo hay nadao bien- No es cierto.Cuando lo llamen, volverá a llamar.pfn
Por ejemplo:_C(exchange.GetTicker)
El intervalo de reintentos predeterminado es de 3 segundos, puede llamar al_CDelay()
Función para establecer el intervalo de reintentos._CDelay(1000)
El uso de un dispositivo de control de la velocidad es un medio para cambiar el intervalo de repetición de las pruebas de_C()
Función a 1 segundo.
La tolerancia a fallos puede realizarse para, entre otras cosas, las siguientes funciones:
exchange.GetTicker()
exchange.GetDepth()
exchange.GetTrades()
exchange.GetRecords()
exchange.GetAccount()
exchange.GetOrders()
exchange.GetOrder()
exchange.GetPositions()
Todos pueden ser llamados por el_C()
La función de tolerancia a fallos_C()
la función no se limita a la función de tolerancia a fallas mencionada anteriormente, el parámetropfn
es una referencia de función en lugar de una llamada de función.
Observe que es_C(exchange.GetTicker)
, no_C(exchange.GetTicker())
.