workerman平滑重启原理 前言只针对linux下的重启解析,windows下没有重启和平滑重启的策略。代码区域只展示方法名称和部分的代码片段,完整代码需要自行参阅workerman项目。下述的名词“主进程”和“父进程”是同一个意思。 梳理流程 命令入口:php workerman.php reload -g 进入\Workerman\Worker::parseCommand(): case 'reload': 2022-11-05 #linux #多进程 #workerman
通过rsync一键同步博客静态文件 背景每次更新完资源后都要手动把静态文件拉到服务器,持续这个操作两年后开始感觉繁琐了。 方案 svn hook:服务端做一个webhook,webhook收到svn的通知事件时在服务器执行一次svn checkout。这个方案相对复杂,而且需要配合svn做一个webhook,不想折腾。 上传单页:逻辑不复杂,要做一个小应用,还是不想折腾。 rsync:这是最近听说的一个shell工具,只需要写一个s 2022-11-04 技巧 #shell #rsync
手写简化版workerman,剖析其原理 前言workerman的最大特色就是基础功能不依赖额外扩展,使得这个框架可以在windows和linux系统中完美运行。其次就是workerman的学习成本极低,只需要会用php写回调就能灵活操控这个框架,对进程和网络相关的知识捆绑不是很高。 项目https://github.com/d2gin/socketman 原理<?php $host = 'tcp://0.0.0.0:996'; 2022-10-20 开源 #workerman #socket #tcp
Flutter短视频解析下载器开源版 介绍支持短视频平台的无水印解析下载,目前支持的平台有抖音、皮皮虾、微博。项目有两个版本,一个是自用版本,一个是开源版本。 项目地址https://github.com/d2gin/video-parser-app 项目说明 各个平台同时支持图片和视频的解析 皮皮虾的解析支持相对来说是最理想的。 目前只在安卓平台中运行。 解析过程是在自建api中进行的,目前api面向公众使用。 如果服务器过 2022-10-15 开源 #Flutter #Android
mysql配置主从复制笔记 搭建环境docker+mysql 5.7模拟双机热备 搭建主库 docker run -d -p 13306:3306 -v /DockerProject/mysql/master/conf:/etc/mysql/conf.d --name mysql-master -e MYSQL_ROOT_PASSWORD=root mysql:5.7 搭建从库 docker run -d -p 133 2022-10-01 技巧 #mysql #主从复制
基于websocket的开源仿微信聊天 👀 介绍仿微信模式的即时聊天系统,实现私聊、群聊、一对一视频功能。支持pc、移动端自适应。开源代码仅供学习交流。 🎏 项目地址https://github.com/d2gin/drchat-v2 ✨ 软件架构 Workerman 4.0、Laravel、php >= 7.3、Vue3+typescript、Socket-io 4.0、WebRTC+Coturn。 使用Vue3渐进式框架进 2022-09-20 开源 #workerman #websocket #socketio
mysql索引覆盖 背景在调试数据库时发现一个比较奇怪的现象: 有表table_a: CREATE TABLE `table_a` ( `id` int(11) NOT NULL AUTO_INCREMENT, `A` varchar(100) CHARACTER SET utf8 DEFAULT NULL, `B` varchar(100) CHARACTER SET utf8 DEF 2022-09-12 技巧 #mysql #索引
php进程守护 前言守护进程模型:https://github.com/d2gin/process 笔记 进程守护原理:父进程fork一个子进程,fork成功后马上退出父进程,那现在的子进程就脱离了命令行的控制。但是对于标准输出流还在,所以你的子进程一旦有输出命令时,命令行中还是会有字符输出的,所以这时候需要将子进程的标准输入输出流重定向到一个控设备中/dev/null,这时候就不会有内容输出到你的控制台中了。 2022-07-11 开源 #php #进程
php多进程模型 前言基于linux的多进程模型:https://github.com/d2gin/process 笔记 如果子进程是阻塞运行的,需要在运行期间分发信号,或者使用异步分发。 // 异步分发 pcntl_async_signals(true); foreach (range(1, $this->total) as $i) { // 控制最大运行进程数 $this->waiti 2022-07-11 开源 #php #多进程