Apr
01
2020
PHP中phar包的使用
PHP5.3之后支持了类似Java的jar包,名为phar。用来将多个PHP文件打包为一个文件。
首先需要修改php.ini配置将phar的readonly关闭,默认是不能写phar包的,include是默认开启的。
phar.readonly => On
创建一个phar压缩包
<?php
$phar = new Phar('swoole.phar');
$pha...
Mar
23
2020
PHP队列SplQueue
队列(Queue)
异步并发的服务器里经常使用队列实现生产者消费者模型,解决并发排队问题。PHP的SPL标准库中提供了SplQueue扩展内置的队列数据结构。另外PHP的数组也提供了array_pop和array_shift可以使用数组模拟队列数据结构。
SplQueue
$queue = new SplQueue;
//入队
$queue->push($data);
//出队
$dat...
Mar
19
2020
利用msg_id应对通知业务的去重设计
情景
在许多常见场景如支付回调的消息通知,需保障消息可靠性,实行消息至少传达一次的策略,即通知时根据业务方响应的状态码、返回码、响应时间来判定业务有效性,如未响应正常的业务状态,通知服务应重新通知。
msg_id的应用及生成
中大型厂商在做消息通知时都会附带msg_id参数,以此便于业务方回溯、去重
msg_id生成方法没有明确规定,一般需符合以下特点:
...
Feb
29
2020
Mysql 中 MyISAM 和 InnoDB 的区别
作者:oscarwin
链接:https://www.zhihu.com/question/20596402/answer/211492971
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
区别:
1. InnoDB 支持事务,MyISAM 不支持事务。这是 MySQL 将默认存储引擎从 MyISAM 变成 I...
Feb
28
2020
基于PhantomJS的网站截图服务API设计与开发
为公司某业务实现“服务端对网站截图”功能,搜罗了很多技术最终采用了PhantomJS无头浏览器技术。
什么是PhantomJS?
PhantomJS是一个基于webkit的javaScript API。它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行javaScript代码。任何你可以基于在webkit浏览器做的事情,它都能做到。它不仅是个隐性的浏览器,提...
May
21
2019
php使用redis的有序集合zset实现延迟队列
延迟队列就是个带延迟功能的消息队列,相对于普通队列,它可以在指定时间消费掉消息。
延迟队列的应用场景:
1、新用户注册,10分钟后发送邮件或站内信。
2、用户下单后,30分钟未支付,订单自动作废。
我们通过redis的有序集合zset来实现简单的延迟队列,将消息数据序列化,作为zset的value,把消息处理时间作为score,每次通过zRangeByScore获取一条消息进行处理。
...
最新评论
感谢分享,谢谢
谢谢分享
感谢分享
@impdx:是的,做业务太多了,算法题...
迎难而上!算法和数据结构对于有经验的程序...
了解
@欧清辣哨:不客气~
你好nb,多谢了!
双击666
不错不错