【发布时间】:2020-06-08 17:23:59
【问题描述】:
我尝试为我的应用程序实现我自己的 WebHook 版本。当用户注册他们的 URL 挂钩时(假设它的 URL 错误或不会用 2XX 代码响应),我想在自定义指数间隔内重试多达五次,例如 5 分钟、30 分钟、2 小时、4 小时和 16 小时.我已经使用 .NET Polly 库实现了这一点。
我的问题是,
1) 在最坏的情况下,将第 5 次重试延长至 16 小时是否安全?
2) 它是线程安全的吗(Polly 说,只要我的代码是线程安全的,它就是线程安全的)但我担心的是 16 小时长的间隔。
3) 假设 10 个请求失败,并且所有请求都在各自的时间间隔内重试。那么,越来越多的请求在一段时间后失败,我的服务器线程池是否会变满并且无法接受任何新请求?
4) 由于间隔时间长,真的值得使用 Polly 之类的库还是更好地使用 CRON 作业调度程序?
我的实现细节与 Polly 的官方示例 IHttpClientFactory (link) 非常相似或相同。
谢谢你的建议。
【问题讨论】:
-
你可能会觉得这很有趣:Fire and Forget on ASP.NET
标签: c# multithreading asp.net-core thread-safety polly