kafliansky/signaler
提供信号监听器栈的Signaler库。
v0.1.0
2022-03-24 10:22 UTC
Requires
- php: >=7.4
- ext-pcntl: *
- psr/log: ^1.1
- seld/signal-handler: ^1.3
Requires (Dev)
- phpunit/phpunit: ^9.5
- vimeo/psalm: ^4.22
This package is auto-updated.
Last update: 2024-09-24 15:44:07 UTC
README
内容
安装
composer require kafkiansky/signaler
用法
使用 \SIGINT
信号的简单示例。
use Kafkiansky\Signaler\SeldSignalFactory; use Psr\Log\NullLogger; $factory = new SeldSignalFactory(new NullLogger()); $signaler = $factory->subscribe([ \SIGINT => function () use ($worker): void { $worker->stop(); } ]); while ($signaler->isTriggered() === false) { // }
此库的主要目的是防止信号监听器被 pcntl_signal
函数替换,如果它已经被供应商代码配置。库会仔细保存之前的信号监听器,并在您的之后调用它们。
例如。
use Kafkiansky\Signaler\SeldSignalFactory; use Psr\Log\NullLogger; pcntl_signal(\SIGINT, function (): void { // This function will still be called after all your listeners. }); $factory = new SeldSignalFactory(new NullLogger()); $signaler = $factory->subscribe([ \SIGINT => function () use ($worker): void { $worker->stop(); } ]); while ($signaler->isTriggered() === false) { // }
测试
$ composer test
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。