学习路之PHP--webman协程学习

学习路之PHP--webman协程学习

  • 一、准备
  • 二、配置
  • 三、启动
  • 四、使用

协程是一种比线程更轻量级的用户级并发机制,能够在进程中实现多任务调度。它通过手动控制挂起和恢复来实现协程间的切换,避免了进程上下文切换的开销

一、准备

PHP >= 8.1
Workerman >= 5.1.0 (composer require workerman/workerman ~v5.1)
webman-framework >= 2.1 (composer require workerman/webman-framework ~v2.1)
安装了swoole或者swow扩展,或者安装了composer require revolt/event-loop (Fiber)
协程默认是关闭的,需要单独设置eventLoop开启

在这里插入图片描述

二、配置

config\process.php 增加

'my-webman' => ['handler' => Http::class,'listen' => 'http://0.0.0.0:8686','count' => 1,'user' => '','group' => '','reusePort' => false,// 开启协程需要设置为 Workerman\Events\Swoole::class 或者 Workerman\Events\Swow::class 或者 Workerman\Events\Fiber::class'eventLoop' => Workerman\Events\Swoole::class,'context' => [],'constructor' => ['requestClass' => Request::class,'logger' => Log::channel('default'),'appPath' => app_path(),'publicPath' => public_path()]],

三、启动

php start.php start
在这里插入图片描述

四、使用

  1. app\controller\IndexController.php
class IndexController
{public function index(Request $request){Coroutine::create(function(){Timer::sleep(10);echo "hello coroutine\n";});return response('hello webman');}

结果:

http://47.112.111.11:8686/ 协程方式访问接口:马上输出hello webman,10秒后在进程守护器日志里输出hello coroutine

http://47.112.111.11:8787/ 非协程方式访问:直接卡10秒,然后显示hello webman,进程守护器日志里输出hello coroutine

其他官方参考
https://www.workerman.net/doc/webman/coroutine/coroutine.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/86590.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux libusb使用libusb_claim_interface失败(-6,Resource busy)解决方案

linux libusb使用libusb_claim_interface失败(-6,Resource busy)解决方案 ✅ 问题原因🛠️ 解决方案🔸 方法一:分离内核驱动 libusb_detach_kernel_driver()🔸 方法二:使用 usb-devi…

使用mpu6500/6050, PID,互补滤波实现一个简单的飞行自稳控制系统

首先,参考ai给出的客机飞机的比较平稳的最大仰府,偏转,和防滚角度,如下: 客机的最大平稳仰俯(Pitch)、偏转(Yaw)和防滚(Roll)角度,通…

深度解析AD7685ARMZRL7:16位精密ADC在低功耗系统中的设计价值

产品概述 AD7685ARMZRL7是16位逐次逼近型(SAR)ADC,采用MSOP-10紧凑封装。其核心架构基于电荷再分配技术,支持2.3V至5.5V单电源供电,集成低噪声采样保持电路与内部转换时钟。器件采用伪差分输入结构(IN/-&a…

EXCEL 实现“点击跳转到指定 Sheet”的方法

📌 WPS 表格技巧:如何实现点击单元格跳转到指定 Sheet 在使用 WPS 表格(或 Excel)时,我们经常会希望通过点击一个单元格,直接跳转到工作簿中的另一个工作表(Sheet)。这在制作目录页…

Python格式化:让数据输出更优雅

Python格式化:让数据输出更优雅 Python的格式化功能能让数据输出瞬间变得优雅又规范。不管是对齐文本、控制数字精度,还是动态填充内容,它都能轻松搞定。 一、基础格式化:从简单拼接开始 1. 百分号(%)格式…

2025年渗透测试面试题总结-小鹏[实习]安全工程师(题目+回答)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 小鹏[实习]安全工程师 1. 自我介绍 2. 有没有挖过src? 3. 平时web渗透怎么学的,有…

VSCode科技风主题设计详细指南

1. 科技风设计的核心特点 科技风设计是一种强调未来感、现代感和高科技感的设计风格,在VSCode主题设计中,可以通过以下几个核心特点来体现: 1.1 色彩特点 冷色调为主:蓝色、紫色、青色等冷色调是科技风设计的主要色彩高对比度:深色背景配合明亮的霓虹色,形成强烈的视觉…

android知识总结

Activity启动模式 standard (标准模式) 每次启动该 Activity(例如,通过 startActivity()),系统总会创建一个新的实例,并将其放入调用者(启动它的那个 Activity)所在的任务栈中。 singleTop (栈…

第3章 MySQL数据类型

MySQL数据类型 1、数字数据类型1.1 整数类型1.2 定点类型1.3 浮点类型1.4位值类型1.5 超出范围和溢出处理1.5.1 超出范围处理1.5.2 溢出处理 2、日期和时间数据类型3、字符串数据类型3.1 char和varchar类型3.2 binary和varbinary类型3.3 blob 和 text类型3.4 enum类型3.4.1 创建…

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…

mysql为什么一个表中不能同时存在两个字段自增

背景。设置sort自增。会引发错误 通常自增字段都是用于表示数据的唯一性。数据库限制。需要自定义排序字段大小。

牛客round95D

原题链接:D-小红的区间修改(一)_牛客周赛 Round 95 题目背景: 初始拥有一个长度10^100元素全为0的数组,进行q查询,每次查询如果区间内的元素都为0就将区间变为首项为 1、公差为 1 的等差数列;否…

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成

实践篇:利用ragas在自己RAG上实现LLM评估②

文章目录 使用ragas做评估在自己的数据集上评估完整代码代码讲解1. RAG系统构建核心组件初始化文档处理流程 2. 评估数据集构建3. RAGAS评估实现1. 评估数据集创建2. 评估器配置3. 执行评估 本系列阅读: 理论篇:RAG评估指标,检索指标与生成指…

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…

PostgreSQL 安装与配置全指南(适用于 Windows、macOS 与主流 Linux 发行版)

PostgreSQL 是一个功能强大、开源、稳定的对象关系数据库系统,广泛用于后端开发、数据处理与分布式架构中。本指南将手把手教你如何在 Windows、macOS 以及主流 Linux 发行版 上安装 PostgreSQL,并附上安装验证命令与基础配置方法。 一、Windows 安装与配…

WordPress博客文章SEO的优化技巧

在数字时代,博客不仅用于表达观点,也能提升品牌影响力并吸引潜在客户。许多服务器提供商(如 Hostease)支持 WordPress 一键安装功能,方便新手快速完成安装,专注于内容创作和 SEO 优化。然而,写出…

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…

雨季智慧交通:从车辆盲区到客流统计的算法全覆盖

雨季智慧交通中的视觉分析技术应用 一、背景:雨季交通的复杂挑战 雨季是城市交通管理的关键考验期。以济南为例,强对流天气伴随的短时强降水、雷雨大风及冰雹,不仅导致道路积水、能见度骤降,还加剧了大型车辆(如渣土…

安全生产管理是什么?安全生产管理系统都有哪些核心功能?

随着法律法规的日益严格和公众对安全意识的提升,企业面临的安全生产压力也越来越大。无论是大型企业还是中小型企业,安全生产管理不仅关系到企业的生存与发展,更直接关系到员工的生命安全和企业的社会形象。因此,理解并实施有效的…