workerman和thinkphp完美結合使用

2021-07-12 02:34:27 字數 1730 閱讀 6618

進入home/controller目錄,新建workermancontroller.class.php

直接上原始碼,這裡我是以守護程序方式執行的,除錯的話,可以去掉daemonize = true 這行.

<?php

namespace home\controller;

use workerman\worker;

/** * 使用者資訊查詢

*/class workermancontroller

define('max_request', 1000);// 每個程序最多執行1000個請求

worker::$daemonize = true;//以守護程序執行

worker::$pidfile = '/data/wwwlogs/worker/workerman.pid';//方便監控workerman程序狀態

worker::$stdoutfile = '/data/wwwlogs/worker/stdout.log';//輸出日誌, 如echo,var_dump等

worker::$logfile = '/data/wwwlogs/worker/workerman.log';//workerman自身相關的日誌,包括啟動、停止等,不包含任何業務日誌

$worker = new worker('text:');//此處我使用內網ip

$worker->name = 'worker';

$worker->count = 2;

//$worker->transport = 'udp';// 使用udp協議,預設tcp

$worker->onworkerstart = function($worker);

$worker->onmessage = function($connection, $data)

};$worker->onbufferfull = function($connection);

$worker->onbufferdrain = function($connection);

$worker->onworkerstop = function($worker);

$worker->onerror = function($connection, $code, $msg);

// 執行worker

worker::runall();

}}

修改workerman/worker.php原始碼,找到parsecommand()方法,workerman版本3.3.2的話,在586行,修改命令列檢測語法:

<?php

protected static function parsecommand()

\n");//修改了此處提示

}// get command.

$command = trim($argv[2]);//修改了此處

$command2 = isset($argv[3]) ? $argv[3] : '';//修改了此處

....

}

ok,此時大功告成。

linux命令列下執行,注意,此處要切換到thinkphp根目錄下面

/usr/local/php/bin/php index.php workerman/index start

檢視執行狀態:

/usr/local/php/bin/php index.php workerman/index status

Think 故事幾則

1 乙隻小豬 乙隻綿羊和一頭乳牛,被關在同乙個畜欄裡。有一次,牧人捉住小豬,小豬大聲號叫,猛烈地抗拒。綿羊和乳牛討厭小豬的號叫,便說 他常常捉我們,我們並不大呼小叫。小豬聽了回答道 捉你們和捉我完全是兩回事,他捉你們,只是要你們的毛和乳汁,但是捉住我,卻是要我的命呢 立場不同 所處環境不同的人,很難...

swoole和workerman做介面的效率對比

本地虛擬機器資訊 centos linux release 7.7.1908 linux version 3.10.0 1062.12.1.el7.x86 64 mockbuild kbuilder.bsys.centos.org gcc version 4.8.5 20150623 red hat...

workerman啟動失敗

啟動後報錯類似如下 php start.php start php warning stream socket server unable to connect to tcp address already in use in home workerman chat workerman worker...