我定义了以下Polly政策:
sharedBulkhead = Policy.Bulkhead(maxParallelizations, maxQueuingActions);
resilienceStrategy = Policy.Wrap(retryPolicy, circuitBreaker, sharedBulkhead);
policyWrap = fallbackForAnyException.Wrap(fallbackForCircuitBreaker.Wrap(resilienceStrategy));
我像这样执行策略:
public bool Notify(IGrouping<string, TModel> messages)
{
var endPoint = messages.Key;
Task.Run(() =>
{
foreach (var message in messages)
{
policyWrap.Execute((context) => CallApi(endPoint), new Context(endPoint));
}
});
return true;
}
我希望每个调用Notify()
都在一个新线程上运行。所以,我的问题是:我是否必须显式调用Task.Run(() =>
一个新线程,还是由 polly 自动在一个新线程上运行?