Error handling 何时重试HTTP请求,何时不重试

Error handling 何时重试HTTP请求,何时不重试,error-handling,httprequest,retry-logic,Error Handling,Httprequest,Retry Logic,我有一个Azure函数,它处理异步消息(来自Azure服务总线),并将HTTP请求作为其逻辑的一部分 如果HTTP请求失败,可能会引发异常,消息最终会在总线上重新查询。直到消息最终超过最大传递计数,才会发生这种情况 我认为这对于间歇性问题(例如网络相关问题、HTTP 503等)来说是非常好的,这些问题可能会在一段时间后自行解决,但在其他情况下,例如HTTP 4XX错误,每次都会失败,直到我们最终耗尽最大的交付次数。对于后者,可能不值得重新查询(也就是说,除非我想利用服务总线平台(如ASB)可能提

我有一个Azure函数,它处理异步消息(来自Azure服务总线),并将HTTP请求作为其逻辑的一部分

如果HTTP请求失败,可能会引发异常,消息最终会在总线上重新查询。直到消息最终超过最大传递计数,才会发生这种情况

我认为这对于间歇性问题(例如网络相关问题、HTTP 503等)来说是非常好的,这些问题可能会在一段时间后自行解决,但在其他情况下,例如HTTP 4XX错误,每次都会失败,直到我们最终耗尽最大的交付次数。对于后者,可能不值得重新查询(也就是说,除非我想利用服务总线平台(如ASB)可能提供的自动死信,但这对我来说似乎有点懒惰和低效)

是否存在记录和接受某些类型错误的模式,但允许其他类型的错误重试。如果是这样,我们会接受哪些类型的场景/错误/状态代码,以及我们应该重试哪些类型的代码

干杯