Retry - ZjzMisaka/PowerThreadPool.zh-CN.Wiki GitHub Wiki

在设置了 WorkOption.RetryOption 后, 如果任务抛出异常并执行失败, 它将根据设置进行重试.
你可以配置重试行为 (立即重试或重新加入任务队列), 设置重试次数, 或允许无限重试 (在回调函数和 WorkEnded 事件参数中提供了停止重试的属性).

powerPool.QueueWorkItem(() =>
{
    throw new Exception();
}, new WorkOption<object>()
{
    RetryOption = new RetryOption()
    {
        RetryBehavior = RetryBehavior.Requeue,
        RetryPolicy = RetryPolicy.Limited,
        MaxRetryCount = 5,
    },
    Callback = (res) =>
    {
        if (res.Status == Status.Failed)
        {
            if (res.RetryInfo.CurrentRetryCount == 2)
            {
                res.RetryInfo.StopRetry = true;
            }
        }
    }
});
⚠️ **GitHub.com Fallback** ⚠️