下载 Workerman, 放入 TP 框架当中,注意与 Home模块 平级,视 Workerman 为一个模块。接着修改 Worker 类中的 parseCommand()
方法,代码如下:
global $argv; // Check argv; $start_file = $argv[0]; $available_commands = array( 'start', 'stop', 'restart', 'reload', 'status', 'connections', ); $usage = "Usage: php yourfile.php {" . implode('|', $available_commands) . "} [-d]\n"; if (!isset($argv[1]) || !in_array($argv[1], $available_commands)) { exit($usage); } // Get command. $command = trim($argv[1]); $command2 = isset($argv[2]) ? $argv[2] : '';
以上代码替换为:
global $argv; // Check argv; $start_file = $argv[0]; if (!isset($argv[2])) { exit("Usage: php yourfile.php Controller/Action {start|stop|restart|reload|status|kill}\n"); } // Get command. $command = trim($argv[2]); $command2 = isset($argv[3]) ? $argv[3] : '';
在 Home 模块当中,正常建立 Workerman 控制器并在文件开始处引入一个命名空间,功能是用于引入Workerman 类代码如下:
use Workerman\Worker;
通过文件引用将 Workerman 加载到方法里并编写 workerman 代码如下:
require_once '/home/wwwroot/default/Application/Workerman/Autoloader.php';
Workerman 控制器 index 方法代码如下:
$worker = new Worker('http://0.0.0.0:2345'); $worker->onMessage = function($connection, $data){ static $request_count = 0;// 已经处理请求数 var_dump($data); $connection->send("hello"); /* * 退出当前进程,主进程会立刻重新启动一个全新进程补充上来,从而完成进程重启 */ if(++$request_count >= MAX_REQUEST){// 如果请求数达到1000 Worker::stopAll(); } }; Worker::runAll();
linux命令运行的代码如下:
php index.php Home/Workerman/index start
此时,你已经可以使用 Workerman 操作数据库了。
Finally,谢谢大家的阅读!祝每天开心~
版权声明:本文为博主半原创文章,未经博主允许不得转载。
微信赞赏
支付宝赞赏
发表评论