• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

SWBT: 基于beanstalkd实现多进程处理消息队列的框架

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

SWBT

开源软件地址:

https://gitee.com/chenbotome/SWBT

开源软件介绍:

SWBT

Github ReleasesPackagistGitHub commitsGitHub release

A PHP Framework of swoole with beanstalkd

Install beanstalkd

Install Swoole

  • Swoole仅支持 Linux、FreeBSD、MacOS 三种操作系统(在Windows平台,可使用CygWin或WSL(Windows Subsystem for Linux)),因此基于Swoole的SWBT同样无法在Windows系统下运行
  • Doc

Install SWBT

  • Composer安装
    composer config bin-dir bincomposer require ywna/swbt

Start-Up(作为第三方依赖)

  • 消息队列的状态
    vendor/bin/SWBT status
    [2018-06-25 17:46:04] SWBT.INFO: Status Info: {"hostname":"chenbo-Vostro-3559","id":"c53887df34bcd127","job-timeouts":"0","pid":"1113","total-connections":"3","total-jobs":"0","uptime":"31447","version":"1.9"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"current-jobs-urgent":"15","des":"优先级小于1024状态为ready的job数量"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"current-jobs-ready":"39","des":"状态为ready的job数量"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"current-jobs-reserved":"0","des":"状态为reserved的job数量"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"current-jobs-delayed":"0","des":"状态为delayed的job数量"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"current-jobs-buried":"2","des":"状态为buried的job数量"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"cmd-put":"0","des":"总共执行put指令的次数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"cmd-peek":"0","des":"总共执行peek指令的次数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"cmd-peek-ready":"0","des":"总共执行peek-ready指令的次数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"cmd-peek-delayed":"0","des":"总共执行peek-delayed指令的次数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"cmd-peek-buried":"0","des":"总共执行peek-buried指令的次数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"cmd-reserve":"0","des":"总共执行reserve指令的次数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"cmd-reserve-with-timeout":"0","des":"总共执行reserve-with-timeout指令的次数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"cmd-delete":"0","des":"总共执行delete指令的次数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"cmd-release":"0","des":"总共执行release指令的次数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"cmd-use":"0","des":"总共执行use指令的次数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"cmd-watch":"0","des":"总共执行watch指令的次数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"cmd-ignore":"0","des":"总共执行ignore指令的次数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"cmd-bury":"0","des":"总共执行bury指令的次数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"cmd-kick":"0","des":"总共执行kick指令的次数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"cmd-touch":"0","des":"总共执行touch指令的次数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"cmd-stats":"3","des":"总共执行stats指令的次数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"cmd-stats-job":"0","des":"总共执行stats-job指令的次数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"cmd-stats-tube":"0","des":"总共执行stats-tube指令的次数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"cmd-list-tubes":"0","des":"总共执行list-tubes指令的次数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"cmd-list-tube-used":"0","des":"总共执行list-tube-used指令的次数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"cmd-list-tubes-watched":"0","des":"总共执行list-tubes-watched指令的次数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"cmd-pause-tube":"0","des":"总共执行pause-tube指令的次数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"max-job-size":"5242880","des":"job的数据部分最大长度"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"current-tubes":"5","des":"当前存在的tube数量"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"current-connections":"1","des":"当前打开的连接数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"current-producers":"0","des":"当前所有的打开的连接中至少执行一次put指令的连接数量"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"current-workers":"0","des":"当前所有的打开的连接中至少执行一次reserve指令的连接数量"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"current-waiting":"0","des":"当前所有的打开的连接中执行reserve指令但是未响应的连接数量"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"rusage-utime":"0.000000","des":"进程总共占用的用户CPU时间"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"rusage-stime":"0.003083","des":"进程总共占用的系统CPU时间"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"binlog-oldest-index":"118","des":"开始储存jobs的binlog索引号"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"binlog-current-index":"123","des":"当前储存jobs的binlog索引号"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"binlog-records-migrated":"0","des":"is the cumulative number of records written as part of compaction."} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"binlog-records-written":"0","des":"binlog累积写入的记录数"} [][2018-06-25 17:46:04] SWBT.INFO: Status Info: {"binlog-max-size":"10485760","des":"binlog的最大容量"} []
  • 消息队列的Job状态信息
    vendor/bin/SWBT status-job
    [2018-06-25 17:39:20] SWBT.INFO: Status Info: {"hostname":"chenbo-Vostro-3559","id":"c53887df34bcd127","job-timeouts":"0","pid":"1113","total-connections":"2","total-jobs":"0","uptime":"31043","version":"1.9"} [][2018-06-25 17:39:20] SWBT.INFO: Status Info: {"current-jobs-urgent":"15","des":"优先级小于1024状态为ready的job数量"} [][2018-06-25 17:39:20] SWBT.INFO: Status Info: {"current-jobs-ready":"39","des":"状态为ready的job数量"} [][2018-06-25 17:39:20] SWBT.INFO: Status Info: {"current-jobs-reserved":"0","des":"状态为reserved的job数量"} [][2018-06-25 17:39:20] SWBT.INFO: Status Info: {"current-jobs-delayed":"0","des":"状态为delayed的job数量"} [][2018-06-25 17:39:20] SWBT.INFO: Status Info: {"current-jobs-buried":"2","des":"状态为buried的job数量"} []
  • bash端方式
    vendor/bin/SWBT run
  • 守护进程deamon方式
    vendor/bin/SWBT start
  • 停止
    vendor/bin/SWBT stop
  • 队列管道配置
    swb/config/SWBT.phpreturn [    'tubes' => [        //队列处理管道名称        'test' => [            'worker_num' => 3, //处理进程数量            'class' => \SWBT\Worker\TestWorker::class //队列处理类        ]    ]];
  • 队列处理类模板,继承BaseWorker类和Worker接口
        <?php        namespace Monkey\Worker;    use SWBT\Code;    use SWBT\Worker\BaseWorker;    use SWBT\Worker\Worker;    class TestWorker extends BaseWorker implements Worker    {        public function handleJob()        {            echo 'do something';            return ['code'=>Code::$success];            // return ['code'=>Code::$delayed];            // return ['code'=>Code::$buried];        }    }

Start-Up(独立项目运行)

  • bash端方式
    bin/SWBT run
  • 守护进程deamon方式
    bin/SWBT start
  • 停止
    bin/SWBT stop
  • 队列管道配置(同上)
  • 队列处理类:src/Worker
  • 目录storage可读写

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap