Pharos
Global

_CDelay - 设置容错重试间隔

设置或获取 _C 函数的重试间隔时间。

语法

python
# 获取当前重试间隔
delay = _CDelay()

# 设置重试间隔为 5 秒
_CDelay(5000)

参数

参数名类型必选默认值说明
millisecondsnumber重试间隔(毫秒)。• 不传参数时返回当前间隔• 传入参数时设置新的间隔

返回值

返回当前的重试间隔(毫秒,number)。

示例

示例1: 查看默认间隔

python
# 查看默认重试间隔
delay = _CDelay()
Log(f"默认重试间隔: {delay} 毫秒")  # 输出: 3000

示例2: 设置重试间隔

python
# 设置为 5 秒重试一次
_CDelay(5000)

# 使用 _C 函数,失败后会等待 5 秒再重试
ticker = _C(exchange.GetTicker)

示例3: 临时调整间隔

python
# 保存原始间隔
original_delay = _CDelay()

# 设置较短的间隔用于快速重试
_CDelay(1000)  # 1 秒

# 执行需要快速重试的操作
account = _C(exchange.GetAccount)

# 恢复原始间隔
_CDelay(original_delay)

示例4: 根据网络状况动态调整

python
error_count = 0

while True:
    try:
        ticker = exchange.GetTicker()
        if ticker:
            error_count = 0
            _CDelay(3000)  # 恢复正常间隔
        else:
            error_count += 1
    except Exception as e:
        error_count += 1
    
    # 错误增多时增加重试间隔
    if error_count > 5:
        _CDelay(10000)  # 10 秒
        Log("网络不稳定,增加重试间隔")
    elif error_count > 3:
        _CDelay(5000)   # 5 秒
    
    Sleep(1000)

示例5: 不同场景使用不同间隔

python
# 行情数据可以较短间隔重试
_CDelay(1000)
ticker = _C(exchange.GetTicker)

# 交易操作使用较长间隔避免频繁请求
_CDelay(5000)
order_id = _C(exchange.Buy, price, amount)

# 查询订单使用中等间隔
_CDelay(3000)
order = _C(exchange.GetOrder, order_id)

注意事项

  1. 全局设置_CDelay 设置的间隔是全局的,会影响所有后续的 _C 调用

  2. 默认值:默认重试间隔为 3000 毫秒(3秒)

  3. 配合 _C 使用:此函数只影响 _C 函数的重试间隔,不影响其他函数

  4. 合理设置

    • 太短:可能导致频繁请求被限流
    • 太长:响应变慢,影响策略效率
    • 建议根据交易所 API 限制合理设置
  5. 单位是毫秒:与 Sleep 函数相同,使用毫秒为单位

相关 API

  • _C - 容错调用函数
  • Sleep - 休眠指定毫秒数