crunch/signal

此包已被废弃,不再维护。未建议替代包。

处理信号处理

dev-master / 1.0.x-dev 2014-04-24 22:24 UTC

This package is not auto-updated.

Last update: 2024-01-11 01:23:23 UTC


README

简单的进程信号包装器

要求

  • PHP => 5.4
  • ext-pcntl => *

同时确保,不要通过 php.ini 中的 disabled_functions 设置禁用 pcntl_*()

用法

等待10秒钟接收 SIGTERM 信号。

use Crunch\Signal;

Signal\wait([Signal\TERM], function (Signal\Info $info) {
    // Do something useful
}, 10);

推迟某些信号

use Crunch\Signal;

$oldMask = Signal\block([Signal\TERM, Signal\HUP]);
// Some critical stuff
Signal\reset($oldMask);

一个简单的计时器

use Crunch\Signal;

Signal\Timer(5);
Signal\wait([Signal\TERM, Signal\ALRM], function (Signal\Info $info) {
    // Do something useful
}, 10);

注册信号处理器。需要 declare(ticks=x)

declare(ticks=1);
use Crunch\Signal;

require __DIR__ . '/../vendor/autoload.php';


echo posix_getpid() . PHP_EOL;
Signal\register(Signal\USR1, function (Signal\Info $info) { echo "USR1!"; exit; });

while (true) {
    // very busy code
}

贡献者

有关如何贡献的详细信息,请参阅 CONTRIBUTING.md。

许可证

本库采用MIT许可证。有关详细信息,请参阅LICENSE文件。