mevyen/yii2-swoole-async
Composer 安装命令:
composer require mevyen/yii2-swoole-async
包简介
yii2异步任务扩展
关键字:
README 文档
README
yii2异步任务扩展:基于swoole和yii2-console的异步任务实现,配置简洁,与Yii2无缝集成,只需要安装swoole扩展即可使用
swoole版本要求:>=1.8.1
实现原理
1、客户端发送异步console任务执行请求
2、服务端响应请求,并立即返回
3、服务端发起task执行任务,执行请求携带的所有任务
适用场景
需要客户端触发的耗时请求,客户端无需等待返回结果
安装
composer require mevyen/yii2-swoole-async "dev-master"
如何使用
1、新增配置文件params_swoole.php
return [ 'swooleAsync' => [ 'host' => '127.0.0.1', //服务启动IP 'port' => '9512', //服务启动端口 'process_name' => 'swooleServ', //服务进程名 'open_tcp_nodelay' => '1', //启用open_tcp_nodelay 'daemonize' => '1', //守护进程化 'worker_num' => '2', //work进程数目 'task_worker_num' => '2', //task进程的数量 'task_max_request' => '10000', //work进程最大处理的请求数 'task_tmpdir' => '/tmp/task', //设置task的数据临时目录 'log_file' => '/tmp/log/http.log', //指定swoole错误日志文件 'client_timeout' => '20', //client链接服务器时超时时间(s) 'pidfile' => '/tmp/y.pid', //服务启动进程id文件保存位置 //--以上配置项均来自swoole-server的同名配置,可随意参考swoole-server配置说明自主增删-- 'log_size' => 204800000, //运行时日志 单个文件大小 'log_dir' => '/tmp/log', //运行时日志 存放目录 ] ];
2、在console主配置文件(main.php)中增加controllerMap
'controllerMap' => [ 'swooleasync' => [ 'class' => 'mevyen\swooleAsync\SwooleAsyncController', ], ],
3、在站点主配置文件(main.php)中增加components
'components' => [ 'swooleasync' => [ 'class' => 'mevyen\swooleAsync\SwooleAsyncComponent', ] ]
4、服务管理
//启动 /path/to/yii/application/yii swooleasync/run start //重启 /path/to/yii/application/yii swooleasync/run restart //停止 /path/to/yii/application/yii swooleasync/run stop //查看状态 /path/to/yii/application/yii swooleasync/run stats //查看进程列表 /path/to/yii/application/yii swooleasync/run list
5、执行任务
namespace console\controllers; use yii\console\Controller; class TestController extends Controller { public function actionSwooleasync(){ $data = [ "data":[ [ "a" => "test/mail", "p" => ["测试邮件1","测试邮件2"] ], ... ], "finish" => [ [ "a" => "test/mail", "p" => ["测试邮件回调1","测试邮件回调2"] ], ... ] ]; \Yii::$app->swooleasync->async(json_encode($data)); } public function actionMail($a='',$b=''){ echo $a.'-'.$b; } }
6、无人值守
服务启动脚本自带服务检测功能,因此可以将启动脚本配置为crontab用以自动保活服务
* * * * * /path/to/yii/application/yii swooleasync/run start >> /var/log/console-app.log 2>&1
7、demo使用方法
将站点目录指向/demo/test/backend/web 即可
mevyen/yii2-swoole-async 适用场景与选型建议
mevyen/yii2-swoole-async 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 339 次下载、GitHub Stars 达 47, 最近一次更新时间为 2016 年 09 月 30 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「extension」 「yii2」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 mevyen/yii2-swoole-async 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 mevyen/yii2-swoole-async 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 mevyen/yii2-swoole-async 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A custom URL rule class for Yii 2 which allows to create translated URL rules
The Yii2 extension uses jQuery jquery.carousel-1.1.min.js and makes image carousel from php array of structure defined.
TYPO3 CMS extension to create gallery content element with preset crop ratios and pagination
UI Kit 3 Extension for Yii2
Adds more BBCode
Define your own css rule-sets for the TYPO3 CMS backend.
统计信息
- 总下载量: 339
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 49
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: BSD-4-Clause
- 更新时间: 2016-09-30