thinkphp5.0使用workerman多線程實例

測試環境:php7 + nginx +linux

  

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

 

新建一個模塊,因爲我這裏使用workerman來作自動任務的,因此我這個模塊的名稱爲:tasklinux

 

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

<?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,內容以下:thinkphp

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

  

 最後,用cli模式執行一下上面這個入口文件便可(window系統使用cmd)php7

相關文章
相關標籤/搜索