Tente novamente a função de tolerância a falhas da interface.
Valor de retorno da função de chamada de retorno quando executada. Todos os tipos são suportados pelo sistema excetovalor lógico falsoevalor nulo.
_C (((pfn) - Não, não, não.
O parâmetropfn
é uma referência de função, que é umaFunção de recallback- Não.
pfn
verdade
função
Parâmetros paraFunções de recallback, pode haver mais de um parâmetroarg
Tipo e número de parâmetrosarg
Depende dos parâmetros doFunção de recallback- Não.
arg
Falso
string, number, bool, object, array, function, todos os tipos são suportados pelo 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 funções tolerantes a erros sem 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 funções com parâmetros tolerantes a erros:
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
Também pode ser usado para tolerância a falhas de funções personalizadas:
O_C()
função continuará a chamar a função especificada até que retorne com sucesso (a função referenciada pelo parâmetropfn
retornozeroouFalsoQuando for chamado, tentará ligar novamente.pfn
Por exemplo:_C(exchange.GetTicker)
. O intervalo de tentativa de reinicialização padrão é de 3 segundos, você pode chamar o_CDelay()
função para definir o intervalo de reatendimento._CDelay(1000)
A utilização de um dispositivo de ensaio para alterar o intervalo de ensaio_C()
Função para 1 segundo.
A tolerância de falhas pode ser feita para, mas não se limita a, as seguintes funções:
exchange.GetTicker()
exchange.GetDepth()
exchange.GetTrades()
exchange.GetRecords()
exchange.GetAccount()
exchange.GetOrders()
exchange.GetOrder()
exchange.GetPositions()
Todos podem ser chamados pelo_C()
A função de tolerância a falhas._C()
a função não é limitada à tolerância de falha da função acima listada, o parâmetropfn
é uma referência de função em vez de uma chamada de função.
Observe que é_C(exchange.GetTicker)
, não_C(exchange.GetTicker())
.