以每小时 20 美元的价格聘请具备人工智能专业知识的 Laravel 开发人员。48 小时内即可开始工作。

Laravel 的断路器

最后更新于 经过

Laravel 图像的断路器

断路器 封装者 @algoyounes 为 Laravel 引入了熔断器模式。它可以跟踪指定服务的故障,并在下游服务不可用时防止级联故障:

  • 三态电路跟踪:闭合、断开和半断开
  • 命名电路用于隔离每个服务的状态
  • 生命周期回调(即, onOpen , onSuccess
  • 通过 Guzzle 中间件集成 X-Circuit-Key 标题
  • 和更多...

电路状态回调

每个服务都有自己专属的命名电路。您可以附加回调函数,以便在电路状态改变或调用成功/失败时做出响应:

电路 = $this -> 电路管理器 -> 服务 “支付服务” (英文):
电路 -> onOpen 功能 电路转换 $transition) {
日志 :: 警告 支付服务回路已开启 ,[
'状态' => 过渡 -> 获取状态 (),
]);
});
电路 -> 成功时 功能 电路结果 $result, 电路转换 $transition) {
// 当包装调用成功时调用
});
电路 -> 失败 功能 电路结果 $result, 电路转换 $transition) {
// 当包装调用失败时调用
});

每个回调函数都由特定事件触发:例如, onOpen 当电路转换到开路状态时运行(由于故障而阻塞调用),而 onSuccess 在成功完成包装调用后触发。 service-name key 可以隔离每个服务的状态,让您可以独立跟踪不同的外部依赖项。

运行操作

电路配置完成后,请使用以下方式包装您的服务调用: run() 断路器会根据当前状态来决定是否允许、阻止或测试呼叫:

电路 -> 跑步 功能 (){
返回 Http :: 邮政 'https://payments.example.com/charge' ,$payload);
});

您还可以使用 CircuitManager 直接跳过设置 CircuitBuilder 实例:

$this -> 电路管理器 -> 跑步 “支付服务” , 功能 (){
返回 Http :: 邮政 'https://payments.example.com/charge' ,$payload);
});

Guzzle 中间件

如果你的项目直接使用 Guzzle,该软件包包含读取数据的中间件。 X-Circuit-Key 请求头用于标识要应用的电路:

使用 AlgoYounes\CircuitBreaker\Middleware\GuzzleMiddleware ;
使用 GuzzleHttp\客户端 ;
使用 GuzzleHttp\HandlerStack ;
$堆栈 = 处理堆栈 :: 创造 ();
$堆栈 -> Guzzle中间件 :: 创造 ());
客户端 = 新的 客户 ([ “处理员” => $stack]);
$响应 = 客户端 -> 得到 'https://api.example.com' ,[
'标题' => [
“X电路密钥” => '外部 API' ,
],
]);

您可以在 GitHub 上了解更多关于此软件包的信息: algoyounes/断路器

保罗·雷德蒙德照片

Laravel News 特约撰稿人。全栈 Web 开发人员兼作家。

归档于:
立方体

Laravel 时事通讯

加入超过 4 万名开发者的行列,不错过任何新的技巧、教程等内容。

图像
Jump24 - 英国 Laravel 代理机构

Laravel 开发人员,精通技术,绝不外包,绝不离岸外包,始终卓越。

访问 Jump24 - 英国 Laravel 代理机构
Tinkerwell 徽标

廷克威尔

Laravel 开发者必备的代码运行器。可在本地和生产环境中体验 AI、自动补全和即时反馈功能。

廷克威尔
几天内即可获得 Laravel 代码审查徽标的专家指导

几天内即可获得 Laravel 代码审查方面的专家指导

专家级代码审查!两位拥有 10 年以上 Laravel 开发经验的开发者将为您提供清晰、实用的反馈,帮助团队构建更优质的应用程序。

几天内即可获得 Laravel 代码审查方面的专家指导
PhpStorm 标志

PhpStorm

首选的 PHP IDE,对 Laravel 及其生态系统提供广泛的开箱即用支持。

PhpStorm
Laravel Cloud 标志

Laravel 云

轻松创建和管理服务器,并在几秒钟内部署 Laravel 应用程序。

Laravel 云
了解 Softtech 的标志

了解软科技

Acquaint Softtech 提供 AI 就绪的 Laravel 开发人员,48 小时内即可上手,每月费用为 3000 美元,没有冗长的销售流程,并提供 100% 退款保证。

了解软科技
Kirschbaum 标志

樱桃树

提供创新和稳定性,确保您的Web应用程序取得成功。

樱桃树
Shift 标志

转移

还在运行旧版本的 Laravel?立即实现 Laravel 自动升级和代码现代化,让您的应用程序保持最新状态。

转移
鱼叉:新一代时间跟踪和发票标志

Harpoon:新一代时间跟踪和发票系统

新一代时间跟踪和计费软件,帮助您的机构规划和预测盈利的未来。

Harpoon:新一代时间跟踪和发票系统
Lucky Media 标志

幸运传媒

Get Lucky Now——拥有十余年经验的 Laravel 开发理想之选!

幸运传媒
SaaSykit:Laravel SaaS 入门套件徽标

SaaSykit:Laravel SaaS 入门套件

SaaSykit 是一个多租户 Laravel SaaS 入门套件,包含运行现代 SaaS 所需的所有功能,例如支付、美观的结账界面、管理面板、用户仪表盘、身份验证、现成组件、统计数据、博客、文档等等。

SaaSykit:Laravel SaaS 入门套件
提示卡组:在 Laravel 镜像中以版本化文件的形式管理 AI 提示

提示牌组:在 Laravel 中以版本化文件的形式管理 AI 提示

阅读文章
Laravel Prompts v0.3.15 新增流式传输、任务、自动完成等功能 图片

Laravel Prompts v0.3.15 新增流式传输、任务、自动完成等功能

阅读文章
Laravel 图像的断路器

Laravel 的断路器

阅读文章
SlideWire:使用 Livewire 和 Blade 图像构建演示文稿

SlideWire:使用 Livewire 和 Blade 构建演示文稿

阅读文章
Laravel 13 发布:PHP 8.3、属性、Laravel AI 以及更平滑的升级路径(图片)

Laravel 13 发布:支持 PHP 8.3、属性、Laravel AI,以及更平滑的升级路径

阅读文章
Lens for Laravel 将 WCAG 审核引入本地开发工作流程图像

Lens for Laravel 将 WCAG 审核引入到您的本地开发工作流程中

阅读文章