• thinkphp5.0使用workerman多线程实例


    测试环境:php7 + nginx +linux
    

      

    首先去官网下载workerman:https://www.workerman.net/,建议使用composer 安装

    新建一个模块,由于我这里使用workerman来做自动任务的,所以我这个模块的名称为:task

    在controller文件夹里面新建一个控制器:Worker.php,里面的代码如下

    <?php
    namespace app	askcontroller;
    use thinkworkerServer;
    use WorkermanLibTimer;
    
    class Worker extends Server {
        protected $socket = '';
        protected $processes = 4;//四进程
        protected $port = '2369';//监听端口
    
        /**
         * 每个进程启动
         * @param $worker
         */
        public function onWorkerStart($worker){
            if ($worker->id === 0) {
                Timer::add(1,function(){
                    echo '这是进程0....';
                });            
            }else if ($worker->id === 1) {
                Timer::add(1, function(){
                    echo '这是进程1.....';
                });
            }else if ($worker->id === 2) {
                Timer::add(1, function() {
                    echo '这是进程2.进程2...';
                });
            }else if ($worker->id === 3) {
                Timer::add(1, function() {
                    echo '进程3,这是进程3....';
                });
            }
        }
    }
    

      添加一个入口文件worker.php,内容如下:

    <?php
    define('APP_PATH', __DIR__ . '/../app/');
    define('BIND_MODULE','task/Worker');
    // 加载框架引导文件
    require __DIR__ . '/../thinkphp/start.php';
    

      

     最后,用cli模式执行一下上面这个入口文件即可(window系统使用cmd)

  • 相关阅读:
    Windows上DVWA和sqli-labs部署(Debian&Ubuntu)
    easy -heap
    栈迁移基础
    调试下的plt&got
    Linux 下的文件解压
    GitHub的raw.githubusercontent.com无法链接
    ELF文件认知(二)可重定位目标文件
    自动微信聊天
    MinIE: Open Information Extraction system, GROBID, tet-pdf
    MD5 don't know the problem (Solved)
  • 原文地址:https://www.cnblogs.com/sky-yu/p/11723773.html
Copyright © 2020-2023  润新知