yaknet/circuit-breaker 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

yaknet/circuit-breaker

Composer 安装命令:

composer require yaknet/circuit-breaker

包简介

A robust and resilient Circuit Breaker implementation for PHP applications.

README 文档

README

PHP Version License

A robust, resilient, and lightweight Circuit Breaker implementation for modern PHP applications. Prevent cascading failures and make your system more reliable when interacting with external APIs or microservices.

🚀 Features

  • Modern PHP 8.1+: Leverages Enums, Readonly properties, and strictly typed logic.
  • Fail-Fast Strategy: Immediately blocks requests to failing services to save resources and allow recovery.
  • Three-State Management: Full support for CLOSED, OPEN, and HALF_OPEN states.
  • Storage Agnostic: Comes with FileStorage out of the box, with an interface to easily add Redis or Memcached.
  • Developer Friendly: Simple API and zero-dependency core.

📦 Installation

composer require yaknet/circuit-breaker

🛠 Usage

Basic Example

use YakNet\CircuitBreaker\CircuitBreaker;
use YakNet\CircuitBreaker\Storage\FileStorage;
use YakNet\CircuitBreaker\Settings;

// 1. Initialize Storage
$storage = new FileStorage(__DIR__ . '/cache');

// 2. Configure Settings (Optional)
$settings = new Settings(
    failureThreshold: 5,
    retryTimeout: 60
);

// 3. Create the Breaker
$breaker = new CircuitBreaker('GeminiAPI', $storage, $settings);

// 4. Run your risky operation
try {
    $result = $breaker->run(function() {
        // Your logic here (e.g. API call)
        return $api->fetchData();
    });
} catch (\YakNet\CircuitBreaker\Exception\CircuitOpenException $e) {
    // Service is currently down, handle gracefully
    echo "Service unavailable. Try again in " . $e->getMessage();
}

🔧 Core States

State Description
CLOSED Normal operation. Requests flow through to the service.
OPEN Failure threshold reached. Requests fail immediately without hitting the service.
HALF_OPEN Trial period. A limited number of requests are allowed to check if the service recovered.

🧪 Testing

composer test

📄 License

The MIT License (MIT). Please see License File for more information.

Developed with ❤️ by YakNet

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 9
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-05-13

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固