到底有几个进程在运行

PHP原始多进程实现以及运行流程 代码如下: ```php$count = 1 ;echo $count;echo "\r\n";echo "main pid=".posix_getpid()."\r\n";for ($i = 0; $i<2;$i++){ echo "for start:pid=".posix_getpid()." i=".$i."\r\n"; $pid = pcntl_fork(); echo "f
阅读全文

Centos系统安装

  • 北溟有鱼QAQ(LuffyQAQ)
  • 2020-08-12 15:28:14
  • PHP
  • linux
电脑系统重装Linux系统用于局域网内网开发swoole 镜像下载 直接centos官网下载镜像 制作ios启动盘 下载UltraISO并安装(试用版既可以) 打开软件 `Ctrl + O` 打开已经下载的镜像,如下图所示 插入U盘,点击启动菜单,选址写入镜像(U盘会格式化),如下图 等待写入完成即可 写入完成后,更改U盘的名称,也是是我的电脑里面修改U盘的名称,越简单越好,方便下面使用 重装系统 插入U盘,然后重启电脑,进入BIOS设置U盘
阅读全文

EasySwoole之定时任务面板

EasySwoole之定时任务面板 需求实现物联网设备的数据获取,有些设备的数据需要定时获取 思路1、做这个功能期间,请教了开发组的成员,最后通过阿正提供的思路来完成2、首先任务有间隔执行(秒级)和 定时执行(分级),所以就考虑到每种类型的任务开两个进程来执行(也就是正哥所说的管理进程和执行进程),最终间隔执行是开启自定义进程开启一秒的Timer定时器进行从Db查询(定时任务不多的情况下),符合条件的进行投递到Task进程执行并标记为已投递,Task进程根据投递的内容
阅读全文

EasySwoole之链路追踪

什么是链路追踪 链路追踪一般常用于分布式架构中,当实现一个功能的同时,可能会依次调用多个接口,那么此时这一些列的接口调用,称为调用链。想要实现调用链,那么就需要对每次调用的链接进行标识也就是pointId,方便出现调用问题的时候排查问题,但是有调用并不是同级,所以还需要用parentId来标识上下级关系。具体请查看链接 EasySwoole中实现Api链路追踪 安装组件 `composer require easyswoole/tracker` onRequest事件(
阅读全文

php的垃圾回收机制

  • 仙士可
  • 2020-01-19 11:02:58
  • PHP
  • php
在平时phpfpm的时候,可能很少人注意php的变量回收,但是到swoole常驻内存开发后,就不得不重视这个了,因为在常驻内存下,如果不了解变量回收机制,可能就会出现内存泄露的问题,本文将一步步带你了解php的垃圾回收机制,让你写出的代码不再内存泄漏 写时复制首先,php的变量复制用的是写时复制方式,举个例子. ```php$a='仙士可'.time();$b=$a;$c=$a;//这个时候内存占用相同,$b,$c都将指向$a的内存,无需额外占用 $b='仙
阅读全文

原生workman实现消息推送

原生workman实现及时消息推送 需求: 共享单车关闭后,会通过设置的url,进行回调,发送数据。那么相对于共享单车关锁来说,回调给url的数据,对于客户端来说是异步操作,那么如何使回调变成同步操作,客户端能立即收到关锁之后的信息呢? 问题: 由于进程之间申请的内存不能共享,所以当你直接调用workman里面封装的方法时,会无法拿到数据。所以好多人就会出现,在回调里面调用推送的方法,提示 `未定义方法或方法不存在`的情况 workman 代码: ```
阅读全文

地理位置计算之geohash算法

地理位置距离实现目标:最近在做共享单车单车的项目,用户打开APP后,如果根据当前的经纬度坐标获取附近的车辆呢? 特点: geohash用一个字符串表示经度和纬度两个坐标(可以加索引) geohash表示的并不是一个点,而是一个矩形区域 geohash编码的前缀可以表示更大的区域。 原理: geohash算法将地球理解为一个二维平面,将平面递归分解成更小的子块,每个子块在一定经纬度范围内拥有相同的编码,这种方式简单粗暴,可以满足对小规模的数据进行经纬度的检索 通过对
阅读全文

TP5.1中导入Excel表到数据库

  • 北溟有鱼QAQ(LuffyQAQ)
  • 2020-01-02 15:33:45
  • PHP
  • php mysql
TP5.1中利用Excel库导入数据到mysql1. 利用composer下载类库 `composer require phpoffice/phpspreadsheet`1. 找到源码在vender下面有个最新下载的phpoffice类库,找到samples下面的Basic,查看里面的自带demo1. 自己新建一个xls文档,用来做测试使用,如果所示1. 编写上传程序,此处前端省略(直接看代码里面的注释)```phppublic function upload(Reque
阅读全文

TP中利用workman获取实时数据

  • 北溟有鱼QAQ(LuffyQAQ)
  • 2019-12-12 15:11:50
  • PHP
  • workman
TP5.1中 利用workman获取实时数据更新 最新在项目当中需要实现数据的实时更新,于是利用workman简单的实现了对数据的实时获取。1. 首先下载workman,可以利用composer引入也可以直接下载workman放在项目当中(这里因composer中的workman版本比较低,所以直接下载的最新版本放到的项目当中) 1. 在application下面创建一个websocket文件夹,里面创建一个ws_start.php 用来写websocket相关的业务
阅读全文

Linux下使用yum安装LNMP环境

如何使用yum搭建有需求的LNMP环境本人使用的是centos7系统,就以centos7的系统搭建为例 Nginx安装1. 下载/安装步骤: 2. 创建/编辑文件:`vi /etc/yum.repos.d/nginx.repo` 3. 编辑内容:`OS代表系统 OSRELEASE 代表系统版本号` ```shellname=nginx repo baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearc
阅读全文