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...
May
21
2019
php使用redis的有序集合zset实现延迟队列
延迟队列就是个带延迟功能的消息队列,相对于普通队列,它可以在指定时间消费掉消息。
延迟队列的应用场景:
1、新用户注册,10分钟后发送邮件或站内信。
2、用户下单后,30分钟未支付,订单自动作废。
我们通过redis的有序集合zset来实现简单的延迟队列,将消息数据序列化,作为zset的value,把消息处理时间作为score,每次通过zRangeByScore获取一条消息进行处理。
...
Nov
30
2018
PHP简写IF判断容易犯的低级问题
今天小V在写一个业务的时候,发现条件老是能成立!后来发现是我犯了一个低级错误。
因为我习惯简写表达式,如:
$a=-1;
if($a){
//...
}
发现条件能成立,我还一直以为负数属于false,汗,这是因为非0为true
总结:变量存在且其值为""、0、"0"、NULL、、FALSE、 array()、以及没有任何属性的对象都视为...
Nov
23
2018
记imagepng在lnmp环境中无法输出保存图片问题
在网上查阅了很多资料说:
去除BOOM头
用ob_clearn();清除缓存
以上几个都没用,后来突然想起是不是没有权限生成文件?!
然后ssh登录终端,用chown命令修改目录属主就正常了 = =
chown -R www:www ./gd
最新评论
谢谢分享
感谢分享
了解
@欧清辣哨:不客气~
你好nb,多谢了!
双击666
不错不错
很不错