Laravel Octane 和 Swoole 协程的使用分析二
又仔细研究了下 Octane 源码和 Swoole 的文档,关于前几天 Laravel Octane 和 Swoole 协程的使用分析中的猜想,得到进一步验证: Swoole 的 HTTP Server 启动后会创建一个 master 进程和一个 manager 进程;master 进程又会创建多个 reactor 线程,负责将请求转发到 work,并从 work 接收结果发送给客户端,相当于 nginx;manager 会创建多个 work 和 task 子进程,work 进程相当于 php-fpm,task 专门处理一些耗时任务,最后将结果交给 work; 而 LaravelOctane 的 concurrently 方法,其实是以 task 为基础,也就解释了为什么脱离 HTTP server 会无法使用。 Swoole
Laravel Octane 和 Swoole 协程的使用分析
之前在工作中使用 Laravel Octane 的 concurrently 处理并发时,发现在队列和定时任务中不会触发并发效果。经过分析,作了如下猜测:队列定时任务都属于一个独立的进程,与 Octane 服务无关,而 Octane conturrently 恰恰需要在 Octane 环境下才能运行。 后来通过代码进行环境检测和查看 php 的进程,证明猜想成立。 1234info('check env', [ 'served by octane' => isset($_SERVER['LARAVEL_OCTANE']) && ((int)$_SERVER['LARAVEL_OCTANE'] === 1), 'on swoole server' => (extension_loaded('swoole') || extension_loaded('openswoole')) &&...
为你的 Laravel 应用添加一个基于 Swoole 的 WebSocket 服务
做了一个基于 Swoole 的 WebSocket 扩展包,可以用来做实时状态推送,或者自定义消息处理实现 im,有需要的可以看看: [giorgio-socket] 使用方法安装安装扩展包 1composer require wu/giorgio-socket 发布配置文件 1php artisan vendor:publish --provider="GiorgioSocket\Providers\SocketServiceProvider" 运行 Socket 服务 1php artisan socket:start 注意事项 可以通过实现 GiorgioSocket\Services\Handlers\Interfaces 下的接口类来自定义自己的业务逻辑。 如果要从服务端发送消息,这里有两种方式: 第一种,借助 Laravel HTTP 客户端 123456Route::get('/socket', function () { ...
2023年9月流水账
最近沉迷 swift,忙里抽闲做了几个菜单栏小工具,外加一个小工具合集,高产似母猪,啊哈哈哈…… 看看后续能不能再多做几个,到时候搞个开发者账号发到苹果商店去。
php 国密 sm2 sm3 sm4 完整测试类
应用范围及描述 算法类型 国密算法 应用范围及描述 对称加密 SM1 128位数据加密,算法不公开,仅以IP核的形式存在于芯片中。智能IC卡、智能密码钥匙、加密卡、加密机。 非对称加密 SM2 被用来替换RSA算法。常用于身份认证,数据签名,密码交换,256位椭圆曲线。 完整性运算 SM3 256位数据摘要计算,相当于SHA256,数字签名及验证、消息认证码生成及验证、随机数生成 对称加密 SM4 128位数据加密,相当于AES(128) 相关代码php sm2 sm3 sm4 完整测试类,可拖入 laravel unit test 模块运行。基于扩展包 [ lpilp/guomi ] , sm2 与兴业银行有部分区别,sm4 已互通,未做招行验证。 sm2 密钥长度一般为 128 或 130 位,部分使用压缩密钥长度为 66,也就是将密钥分成 x、y,y是偶数就是02,y是奇数就是03,通过 x 可以算出...
2023 年计划清单
继续减肥 装修&办小红本 下半年软考-系统架构设计师 ,8月中上旬报名,11月下旬考试 我倒要看看这个证我能考几年
向我的小电驴致敬
最近天冷了,骑车上下班又多了些痛苦。 每年的这个时候,我都会出现一些对小电驴命运的担忧,它还能陪我多久呢?即使它才买了两年,但也已经伤痕累累。 截止到今天,我一共丢了两个头盔,都是因为放在车筐然后被人拿走;摔倒三次,都是因为刹车太急导致侧翻;后座的两个脚踏板都有破损,大概率是被停在旁边的车子剐蹭;前轮右侧反光条破碎,大概率同上;左闸轻微磨损,因第二次摔车路面剐蹭;右闸螺丝帽丢失,原因未知;后轮轮毂右侧轻微变形,原因未知;座桶右侧皮套破损,因台风天倒地被旁边车子刮破;后轮轻微漏气,因为我有段时间经常带人…… 每一处损伤都是小电驴的勋章,但也做实了我的不负责任,我是个渣男吧。 我总会想如果哪天我决定要离开上海,那我是该怎么处理它,低价处理掉还是找个物流公司给运回去? 运回去成本有点高,而且连续两年的高强度工作也让我略感担忧:廉颇老矣,尚能饭否?低价卖掉又觉得有点可惜,这家伙明明就性能强悍,充一次电就能驮我跑个 60 公里,如果当初能对它细心点,肯定也不至于这样…… 想来想去又都没有结果。 嗐,贱人就是矫情。
The Fucked 2022
为了应对拖延,2022 年 11 月 25 日,我打开了编辑器,准备提前开写年终总结,然后在当天午休过后,突然接到物业通知让我们赶快回家,因为隔壁公司阳了。 晚上十点,同事说接到电话被判了密接,半个小时后开始转移。十一点二十,住同区的同事说也接到了电话,于是我起床收拾了行李。十分钟后电话响了,通知我等待转移,但是房源紧张需要申请,让我先休息,保持电话畅通。 挂了电话,不安开始涌了上来。躺下,睡不着,起来,又无事可做。 最后只好和衣躺在床上,在公司群里聊天到4点半,期间不停有人上车被拉到方舱, 迷迷糊糊睡到 7 点,被居委电话吵醒,通知我房源还没下来,继续居家,尽量不要和室友接触。 10 点,居委再次来电重申上述信息。 9 点,12 点,均再次接到居委电话重申上述信息。 下午 4...
碎碎念
今天周五,白天躺在床上干活(摸鱼)时掰手指算了一下,今天应该是被封控在家的第 49 天。 未来还要继续封多久?这个我也不知道。可能快解放了吧。 我已经脱下了冬装换上了短袖,从 150 瘦到了 140,被我拎回家的电瓶已经充了第三次电,窗外的景色也从光秃秃变成了郁郁葱葱,枇杷都熟了。今天冒雨去核酸时,还因为看枇杷一脚踩进水坑,淦! 封了这么久,多少是有点麻了,想起来刚开始每天早起收拾的利利索索,楼下一喊就核酸就光速下楼,现在每天能多躺会儿就绝对不会早起,蓬头垢面、邋里邋遢,心情好了可能才洗个头再下去。也没去记核酸了多少次,反正家里做抗原的盒子被我码的整整齐齐,也有一大堆了。本来想等快递通了搞点热熔胶,粘几个小摆件玩,那不是挺有纪念价值嘛。但是……上次拍照发群里被同事喷,说我攒了一堆的大鼻涕,再看总觉得有点恶心🤢。 头发也长了,天天扎个小啾啾,感觉自己还挺好看。要不就留长发吧,解封了去修一修,或者干脆就修也不修,省下一笔又一笔不菲的理发钱,真开心,又可以多喝两罐啤酒。 我迟早会做个扎辫子的程序员,左手键盘,右手鼠标,就像个艺术家。