Pharos
Global

_C()

容错调用函数,自动重试直到成功。

语法

python
result = _C(func, *args, **kwargs)

参数

参数名类型必选默认值说明
funcany-要调用的函数
*argsany-函数的位置参数
**kwargsany-函数的关键字参数

返回值

返回函数调用的结果

说明

_C() 会自动重试函数调用,直到成功为止。如果调用失败,会等待一段时间(默认3秒)后重试。适用于网络不稳定的场景。

示例

基本用法

python
def main():
    # 自动重试直到获取到行情
    ticker = _C(exchange.GetTicker)
    Log("价格:", ticker['Last'])

带参数调用

python
def main():
    # 自动重试下单,直到成功
    order_id = _C(exchange.Buy, 50000, 0.01)
    Log("订单ID:", order_id)

设置重试间隔

python
def main():
    # 设置重试间隔为5秒
    _CDelay(5000)
    
    ticker = _C(exchange.GetTicker)
    Log("价格:", ticker['Last'])

关键场景使用

python
def main():
    while True:
        # 确保获取到行情
        ticker = _C(exchange.GetTicker)
        
        # 确保获取到账户信息
        account = _C(exchange.GetAccount)
        
        if account['Balance'] > 100:
            # 确保下单成功
            order_id = _C(exchange.Buy, ticker['Buy'], 0.01)
            Log("下单成功:", order_id)
        
        Sleep(10000)

与普通调用对比

python
def main():
    # 普通调用 - 可能失败
    try:
        ticker = exchange.GetTicker()
    except Exception as e:
        Log("获取行情失败:", e)
        return
    
    # 容错调用 - 自动重试直到成功
    ticker = _C(exchange.GetTicker)
    Log("一定能获取到行情:", ticker['Last'])

注意事项

  1. _C() 会无限重试,确保函数最终能成功
  2. 不适用于可能永久失败的操作
  3. 可通过 _CDelay() 调整重试间隔

相关函数