jtrw/posix-signal-handler

Posix信号的处理器

1.0.0 2022-09-21 12:07 UTC

This package is auto-updated.

Last update: 2024-09-21 16:21:25 UTC


README

Phpunit codecov Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

首先,对于一些像php进程在后台运行的系统中的脚本,这是必要的。例如队列或通过cron运行的worker,以及像恶魔一样长时间在操作内存中运行的。有时你需要终止一些php进程,比如这样kill -9 pid,因为你现在需要重新启动脚本,可能会遇到一些问题。如果你现在终止进程,你不知道程序中断的位置。为此,你可以使用软杀kill -SIGTERM pid。在你的代码中,你应该集成这个库。例如

declare(ticks = 1);

require_once __DIR__."/../vendor/autoload.php";
$signal = new \Jtrw\PosixSignal\SignalHandler();

while (true) {
    $this->doSomething(); //Your Business logic
    $signal->terminate();
}

当我们的代码接收到信号SIGTERMSIGINTSIGTSTPSIGTERMSIGHUPSIGILL时,它会将你的代码逻辑结束,并软结束你的脚本。

要求

composer require jtrw/posix-signal-handler

测试

你可以在docker容器中运行测试。要运行docker容器,你可以执行命令:make start,这个命令运行docker-compose up -d。之后,你可以在docker容器中运行unittest,执行make tests