Global
_C()
容错调用函数,自动重试直到成功。
语法
python
result = _C(func, *args, **kwargs)参数
| 参数名 | 类型 | 必选 | 默认值 | 说明 |
|---|---|---|---|---|
| func | any | 否 | - | 要调用的函数 |
| *args | any | 否 | - | 函数的位置参数 |
| **kwargs | any | 否 | - | 函数的关键字参数 |
返回值
返回函数调用的结果
说明
_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'])注意事项
_C()会无限重试,确保函数最终能成功- 不适用于可能永久失败的操作
- 可通过
_CDelay()调整重试间隔
相关函数
- _CDelay() - 设置重试间隔