拥有php标签的文章

Easyswoole下Crontab定时器如何实现奇偶数时间分别运行不用的定时任务

easyswoole vip群中有小伙伴问到, Crontab 下如何实现奇数时间和偶数时间下分别运行不用的定时任务,今天就来给大家普及一下知识
阅读全文

如何利用EasySwoole多进程多协程redis队列实现爬虫

什么是爬虫? 爬虫是一种按照一定的规则,自动地抓取网上数据的程序或脚本 爬虫之前的准备? 根据初始页面,制定规则获取更多的需要爬取的页面 根据页面内容制定规则,爬取想要的东西 用到的组件及框架 EasySwoole框架(https://www.easyswoole.com/) redis连接池组件(https://www.easyswoole.com/Cn/Components/Redis/pool.html) 协程HTTPClient组件(https://ww
阅读全文

EasySwoole中利用redis实现消息队列

什么是队列? 从数据结构上来讲,队列是一种先进先出的数据结构 什么是消息队列? 消息队列可以简单理解为:把要传输的数据放在队列中 消息队列可以分为生产者和消费者,将传输的数据放到消息队列当中,就相当于生产者,从消息队列中取得数据,就相当于消费者 消息队列可以用来做什么? 电商的秒杀,可以防止超卖 爬虫,将数据存入队列,利用多进程消费 解耦,A系统中的数据放入队列,B和C以及D系统去获取数据 异步限流,提升用户体验,防止系统崩溃 消息队列有哪些? 常
阅读全文

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算法将地球理解为一个二维平面,将平面递归分解成更小的子块,每个子块在一定经纬度范围内拥有相同的编码,这种方式简单粗暴,可以满足对小规模的数据进行经纬度的检索 通过对
阅读全文

高德鼠标绘制覆盖物

最近在做共享单车的项目,项目用有用到电子围栏区域的功能,也就是相当于在地图中画一个区域,用户只能在区域内骑行,如果超出,则需要调度费 添加地图围栏```<div id='container' style="height: 450px;width: 100%;"</div<div class="inputcard" style='width: 24rem;' <div class="inputitem" <input type="hidden" name="location_
阅读全文

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
阅读全文

Centos7下安装kafka

Centos7下安装kafka单机版 项目中要用到kafka来做消息队列,然而本人是小白一枚,所以从零开始,尝试着安装并搭建好kafka测试环境 安装java的JDk 首先要使用命令 `java version` 查看本地是否已经安装JDK(我本地是比较干净的,并没有系统自带的jdk,所以不需要删除) 官网找到最新稳定的JDK 并根据自己的系统,下载合适的下载到本地(因包比较大,所以wget 下载会失败,所以采用本地下载并使用ftp上传的方式解决) 找到JDK压缩包并
阅读全文

EasySwoole源码生命周期

EasySwoole生命周期 本图是EasySwoole一群群友看源码所画,然后为Easyswoole贡献尽一点微薄之力,希望帮助到更多学习EasySwoole的人
阅读全文