如何利用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压缩包并
阅读全文

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相关的业务
阅读全文