Thinkphp6+swoole 教程(四)配置、工作进程、协程以及理解 Swoole 进程模式
一、配置
1、安装swoole扩展:
使用composer安装swoole扩展,在composer.json中添加如下代码:"swoole/swoole": "^4.5.1"。然后运行 composer update 命令来更新依赖。
2、配置ThinkPHP6的Swoole服务:
在config目录下创建server.php文件,保存如下内容:
return [ // 配置Swoole服务 'swoole_http' => [ 'host' => '0.0.0.0', 'port' => 9501, 'mode' => SWOOLE_PROCESS, 'sock_type' => SWOOLE_SOCK_TCP, 'options' => [ // 运行时参数 'pid_file' => runtime_path('swoole.pid'), // PID 文件路径 'log_file' => runtime_path('swoole.log'), // 日志文件路径 'daemonize' => 1, // 是否开启守护进程 ], ],];
3、创建Swool服务的入口文件:
在public目录下创建server.php文件,保存如下内容:require __DIR__ . '/../thinkphp/base.php';$app = \think\Container::get('app');$http = $app->make(\think\swoole\Http::class);$http->run();
二、工作进程
Swool是一个多进程架构的异步处理库。其核心原理是通过master-worker架构来处理请求的。master-worker架构由一个master进程负责监听端口并接受请求数据包,然后将请求数据包分发到不同的worker子进程中去处理。master-worker之间采用异步通道通信。因此能够大大减少对CPU资源占用情况并提升性能。
三、协程
协程是一套独立于传统IO互斥锁机制之上的平衡树形IO多通道交互机制。 在传统IO中我们使用select或poll来监测FD集体是否已就位可读写时会阻塞当前IO流水带上的所有关波特性耗时操作而不能站竿眩眩地去完成关波特性耗时操作也就意味者快速应对大量并发也就难上加难了” 在Swool中我们使用协程来避开传 统 IO 等待带来的性能问题而不必将 IO 等待时间浪费地去执行 CPU 耗时操作 在 Swool 中我们使用 Task Worker 进 等待带来的性能问题而不必将 IO 等待时间浪费地去执行 CPU 耗时操作 在 Swool 中我们使用 Task Worker 进 郊避开 IO 等待带来的性能问题而不
创作工场
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!