Symfonyob娱乐下载 5.2新增功能:可重放的HTTP客户端
2020年10月5日·发表的哈维尔Eguiluz
警告:这篇文章是关于一个不受支持的Symfony版本。ob娱乐下载有些信息可能已经过时了。阅读最新的Symfony文档ob娱乐下载.
提供的
杰里米Derusse
在# 38182.
有时,由于不同的原因(网络问题、临时服务器错误等),HTTP客户端发出的请求会失败ob娱乐下载HttpClient组件有一个新的可选功能,自动重试失败的请求。
在Symfony应用程序中使用HttpClient时,请使用ob娱乐下载retry_failed
选项,以启用和配置此功能:
1 2 3 4 5 6
#配置/包/ framework.yaml框架:#……http_client:#……retry_failed:真正的
这是所有。现在,Sob娱乐下载ymfony将在所有失败的请求中重试最多3次,其中包含状态代码(423、425、429、500、502、503、504、507、510)
它将以指数方式从1秒(第一次重试)等待到4秒(第三次尝试)。
该特性的所有参数可配置如下:
12 3 4 5 6 7 8 9 10 11 12 13 14
#配置/包/ framework.yaml框架:#……http_client:#……retry_failed:#只重试这些HTTP代码的错误http_codes:(429年,500]max_retries:2#重试之间的等待时间(单位:毫秒)延迟:1000#如果设置,则每次重试的等待时间按此因子增加#(例如:第一次重试:1000ms;第二次重试:3 * 1000ms;等等)。乘数:3.
还有其他配置选项可以定义最大延迟、使用自定义服务实现“回退重试”策略等。
当在Symfony应用程序外部使用HttpClient时,使用新的ob娱乐下载RetryableHttpClient
类来包装常规的HTTP客户端:
1 2 3
使用ob娱乐下载\组件\HttpClient\RetryableHttpClient;$客户端=新RetryableHttpClient (HttpClient::create ());
发表在#生活在边缘
评论
评论截止。
为了确保评论保持相关性,旧帖子将被关闭。
谢谢!@Jeremy
顺便说一句,根据示例中的注释,“乘数”选项似乎是线性的,但正如文本中所描述的那样,它是指数级的。其中一个是错误的。
这看起来像是一个不幸的组合。这可以理解为“new FooHttpClient (new BarHttpClient)”。为什么要注入相同类型的对象(从名称判断)?
Titouan Galopin is a certified Symfony engineer and a certified Twig designer.
Get certified! Online exams available in all countries.
Register Now