thinkphp5.0使用workerman多線程實例


測試環境:php7 + nginx +linux

  

首先去官網下載workerman:https://www.workerman.net/,建議使用composer 安裝

 

新建一個模塊,由於我這里使用workerman來做自動任務的,所以我這個模塊的名稱為:task

 

在controller文件夾里面新建一個控制器:Worker.php,里面的代碼如下

<?php
namespace app\task\controller;
use think\worker\Server;
use Workerman\Lib\Timer;

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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM