All Projects → chenbo29 → orange

chenbo29 / orange

Licence: Apache-2.0 license
基于beanstalkd实现多进程处理消息队列的框架

Programming Languages

PHP
23972 projects - #3 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to orange

coolbeans
Coolbeans is a distributed work queue that implements the beanstalkd protocol.
Stars: ✭ 56 (+194.74%)
Mutual labels:  queue, beanstalkd
beansclient
Robust PHP client for beanstalkd work queue
Stars: ✭ 86 (+352.63%)
Mutual labels:  queue, beanstalkd
QueueBundle
QueueBundle for Symfony Framework
Stars: ✭ 40 (+110.53%)
Mutual labels:  queue, beanstalkd
linda
Linda is a simple dispatcher library.
Stars: ✭ 12 (-36.84%)
Mutual labels:  queue, beanstalkd
Swoole Jobs
🚀Dynamic multi process worker queue base on swoole, like gearman but high performance.
Stars: ✭ 574 (+2921.05%)
Mutual labels:  queue, swoole
beanstalk
Asynchronous Beanstalk Client for PHP.
Stars: ✭ 62 (+226.32%)
Mutual labels:  queue, beanstalkd
Group
轻量级框架 。实现了定时任务功能,分布式任务队列,命令行控制台,数据库脚本自动化,单元测试, rpc服务,多进程服务(模拟map-reduce)等等实用的功能!! 文档 https://fucongcong.gitbooks.io/group-doc/content/.
Stars: ✭ 122 (+542.11%)
Mutual labels:  queue, swoole
Aint Queue
🚀 An async-queue library built on top of swoole, flexable multi-consumer, coroutine supported. 基于 Swoole 的一个异步队列库,可弹性伸缩的工作进程池,工作进程协程支持。
Stars: ✭ 143 (+652.63%)
Mutual labels:  queue, swoole
kue-unique
Unique job utility for kue
Stars: ✭ 23 (+21.05%)
Mutual labels:  queue
php-tdengine
大数据引擎 TDengine 的 PHP 客户端扩展,支持 Swoole!
Stars: ✭ 62 (+226.32%)
Mutual labels:  swoole
fs
[READ-ONLY] Enterprise queue solutions for PHP. Filesystem transport.
Stars: ✭ 32 (+68.42%)
Mutual labels:  queue
fast-laravel
基于Swoole的高性能HTTP服务器,加速您Laravel应用程序。
Stars: ✭ 33 (+73.68%)
Mutual labels:  swoole
create-siler-app
🧱 Set up a modern Siler app by running one command.
Stars: ✭ 15 (-21.05%)
Mutual labels:  swoole
youtube-dl-nas
youtube download queue websocket server with login for private NAS.
Stars: ✭ 136 (+615.79%)
Mutual labels:  queue
swoole-cs.github.io
swoole 4.x cheat sheet
Stars: ✭ 21 (+10.53%)
Mutual labels:  swoole
swoole-link-monitor
基于swoole 定时器与woker 实现链路监控
Stars: ✭ 34 (+78.95%)
Mutual labels:  swoole
crow
Fast, unopinionated, minimalist web framework for PHP.
Stars: ✭ 47 (+147.37%)
Mutual labels:  swoole
wlsh-framework
名词解释:wlsh( 为了生活---每个字的第一个拼音 )酷毙的码农为了生活自由,基于composer整合yaf框架与swoole等扩展,开发的php协程组件;低耦合,使用非常少的语法糖,尽量使用原有扩展中的语法。
Stars: ✭ 18 (-5.26%)
Mutual labels:  swoole
swoole api framework
swoole
Stars: ✭ 28 (+47.37%)
Mutual labels:  swoole
TT Jobs
基于 Swoole 定时管理系统
Stars: ✭ 22 (+15.79%)
Mutual labels:  swoole

SWBT

SWBT

Github Releases Packagist GitHub commits GitHub release

A PHP Framework of swoole with beanstalkd

Install beanstalkd

Install Swoole

  • sudo apt-get install -y php-pear php7.0-dev
  • sudo pecl install swoole
  • Swoole仅支持 Linux、FreeBSD、MacOS 三种操作系统(在Windows平台,可使用CygWin或WSL(Windows Subsystem for Linux)),因此基于Swoole的SWBT同样无法在Windows系统下运行
  • Doc

Install SWBT

  • Composer安装
    composer config bin-dir bin
    composer 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.php
    
    return [
        '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可读写
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].