jtrw / posix-signal-handler
Posix信号的处理器
1.0.0
2022-09-21 12:07 UTC
Requires
- php: >=7.4
- ext-pcntl: *
- ext-posix: *
Requires (Dev)
- phpunit/phpunit: >=8.0
- squizlabs/php_codesniffer: ^3.0
This package is auto-updated.
Last update: 2024-09-21 16:21:25 UTC
README
首先,对于一些像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(); }
当我们的代码接收到信号SIGTERM
、SIGINT
、SIGTSTP
、SIGTERM
、SIGHUP
、SIGILL
时,它会将你的代码逻辑结束,并软结束你的脚本。
要求
composer require jtrw/posix-signal-handler
测试
你可以在docker容器中运行测试。要运行docker容器,你可以执行命令:make start
,这个命令运行docker-compose up -d
。之后,你可以在docker容器中运行unittest,执行make tests