kcloze/multiprocess
Composer 安装命令:
composer require kcloze/multiprocess
包简介
基于swoole的cli多进程管理
关键字:
README 文档
README
- [readme in english]
- 基于swoole的脚本管理,用于多进程和守护进程管理;
- 可轻松让普通脚本变守护进程和多进程执行;
- 进程个数可配置,可以根据配置一次性执行多条命令;
- 子进程异常退出时,主进程收到信号,自动拉起重新执行;
- 支持子进程平滑退出,防止重启服务对业务造成影响;
- 不限定编程语言,PHP/Python/Java/Golang/C#等脚本都可以管理
1. 场景
- PHP/python/js等脚本需要跑一个或多个脚本消费队列/计算等任务
- 实现脚本退出后自动拉起,防止消费队列不工作,影响业务
- 其实supervisor可以轻松做个事情,这个只是PHP的另一种实现,不需要换技术栈
2. 流程图
3. 安装
- git clone https://github.com/kcloze/multiprocess.git
- composer install
- 根据自己业务配置,修改config.php
4. 配置实例
- 一次性执行多个命令
'logPath' => __DIR__ . '/log',
'exec' => [
[
'name' => 'kcloze-test-1',
'bin' => '/usr/bin/php',
'binArgs' => [__DIR__ . '/test/test.php', 'oop', '123'],
'workNum' => 3,
],
[
'name' => 'kcloze-test-2',
'bin' => '/usr/bin/php',
'binArgs' => [__DIR__ . '/test/test2.php', 'oop', '456'],
'workNum' => 5,
],
[
'name' => 'kcloze-test-3',
'bin' => '/usr/bin/python',
'binArgs' => [__DIR__ . '/test/test3.py', 'oop', '369'],
'workNum' => 2,
],
],
5. 运行
5.1 启动
- chmod -R u+r log/
- php multiprocess.php start >> log/system.log 2>&1
5.2 平滑停止服务,根据子进程执行时间等待所有服务停止
- php multiprocess.php stop
5.3 强制停止服务[慎用]
- php multiprocess.php exit
5.4 强制重启
- php multiprocess.php restart >> log/system.log 2>&1
5.5 监控
- ps -ef|grep 'multi-process'
5.6 启动参数说明
NAME
php multiprocess - manage multiprocess
SYNOPSIS
php multiprocess -s command [options] -c config file path
Manage multiprocess daemons.
WORKFLOWS
help [command]
Show this help, or workflow help for command.
-s restart
Stop, then start multiprocess master and workers.
-s start
Start multiprocess master and workers.
-s start -c ./config
Start multiprocess with specail config file.
-s stop
Wait all running workers smooth exit, please check multiprocess status for a while.
-s exit
Kill all running workers and master PIDs.
6. 服务管理
启动和关闭服务,有两种方式:
6.1 php脚本(主进程挂了之后,需要手动启动)
./multiprocess.php start|stop|exit|restart
6.2 使用systemd管理(故障重启、开机自启动)
1. 根据自己项目路径,修改 systemd/multiprocess.service
2. sudo cp -f systemd/multiprocess.service /etc/systemd/system/
3. sudo systemctl --system daemon-reload
4. 服务管理
#启动服务
sudo systemctl start multiprocess.service
#reload服务
sudo systemctl reload multiprocess.service
#关闭服务
sudo systemctl stop multiprocess.service
7. 系统状态
8. change log
2017-11-30
- 彻底重构v2版本
- 增加exit启动参数,默认stop等待子进程平滑退出
9. 感谢
10. 联系
qq群:141059677
kcloze/multiprocess 适用场景与选型建议
kcloze/multiprocess 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 59 次下载、GitHub Stars 达 150, 最近一次更新时间为 2017 年 07 月 21 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「multi-process」 「swoole」 「多进程」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 kcloze/multiprocess 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 kcloze/multiprocess 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 kcloze/multiprocess 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
:vertical_traffic_light: Process supervisor for PHP.
PHP library for parallel shell commands execution
A new generation of multi-process async event-driven spider engine based on Workerman
annotations-scan-plugin
PHPCreeper plugin for webman
SForum
统计信息
- 总下载量: 59
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 150
- 点击次数: 13
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-07-21

