per3evere / preq
Laravel && Lumen 的微服务 IPC 命令工厂
v2.0.0
2021-01-22 08:49 UTC
Requires
- php: ^7.1
- guzzlehttp/promises: ^1.4.0
- illuminate/support: ^5.8|^6.0|^7.0|^8.0
Requires (Dev)
- phpunit/phpunit: ^7.0|^8.0|^9.0
Suggests
- laravel/framework: To test the Laravel bindings
- laravel/lumen-framework: To test the lumen bindings
README
关于 Preq
Preq 是一个为 Laravel && Lumen 设计的延迟和容错库,灵感来源于 Netflix 的 Hystrix 和 upwork/phystrix
安装
使用 composer 安装此包
composer require per3evere/preq --dev
添加 ServiceProvider
Laravel
将以下内容添加到 config/app.php
中的 providers 数组
Per3evere\Preq\PreqServiceProvider::class
Lumen
将以下内容添加到 bootstrap/app.php
$app->register(Per3evere\Preq\PreqServiceProvider::class);
使用
创建服务命令文件
namespace App\Services; use Per3evere\Preq\AbstractCommand; class Example extends AbstractCommand { /** * 同步执行命令. * * @return void */ public function run() { return 'run!'; } /** * 异步执行命令. * * @return \Guzzlehttp\Promise\Promise; */ public function runAsync() { // 返回注意返回类型. } }
执行它
$command = app('preq')->getCommand(\App\Services\Example::class); // 同步执行命令 echo $command->execute(); // 异步执行命令 $command->queue();