需求背景 在我司负责的其中一个微服务为公司的各个事业线提供了整个短信接口。受限于日益抓紧的电信运营商的政策,短信发送越来越困难。各个短信服务商都提出了类似的报备短信模板的要求...
需求背景 在我司负责的其中一个微服务为公司的各个事业线提供了整个短信接口。受限于日益抓紧的电信运营商的政策,短信发送越来越困难。各个短信服务商都提出了类似的报备短信模板的要求...
上周公司支付系统出现了故障,在故障处理后的善后排查中发现了某账户某段时间内资金和流水对不上,最终发现了一个并发BUG。由于该BUG具有一定普通适性,故整理成文到内部知识库,简...
异步任务的封装 Yar用yar_call_data_t表示一个异步任务,sequence是从1开始的任务ID,除了sequence,其他基本上就是对应Yar_Concurre...
传输器结构 yar底层用一个_yar_transport_interface结构表示一个传输器,处理网络IO相关事宜。 yar_transport_interface_t由y...
Server模块提供了一个基于Http的Yar协议的Server实现。常见的使用方法如下 在你所用的框架的action下执行以上代码,并为Ycf-Client提供能通过具体路...
Yar拓展自带了一个Yar的PHP客户端,这一章先讲yar的同步客户端实现。 我们假设使用代码如下: Client构造器 从Yar_Client类的构造器看起,Yar_Cli...
请求的底层结构 Yar底层使用yar_request_t来描述一个请求的所有信息.以以下RPC底层调用为例 id成员使用mt_rand()生成的随机数填充,用于(弱)唯一标识...
协议头结构 yar底层使用一个yar_header_t描述载荷的协议头信息. id 即requestId,用来标识同一个来回的rpc数据。 version为协议版本,yar以...
序 Yar是鸟哥惠新宸写的一款并行RPC框架,是国内PHP圈内主流的RPC方案选择,也是笔者公司服务化体系中的基础组件。为了更深入的理解其实现原理和熟悉该工具,抽空刷了遍源码...
@fly1234 执行进程仅仅是投递,任务是task进程执行的,如果消费太慢也是积压unixsock缓冲区,table本身是及时清的。另外定时任务之间的执行是独立的,你观察到串行执行,很可能是因为你没有改task进程数配置,我记得swoft默认配置是1。
[原创]Swoole和Swoft的那些事(Task投递/定时任务篇)Swoft的任务功能基于Swoole的Task机制,或者说Swoft的Task机制本质就是对SwooleTask机制的封装和加强。 任务投递 任务投递Task::delive...
今天翻PHP源码,无意中翻到了pcntl的源码,简单看了看,被吓了一跳。 这是pcntl模块初始化的代码。 PHP_MINIT_FUNCTION(pcntl){ php...
Swoft的任务功能基于Swoole的Task机制,或者说Swoft的Task机制本质就是对SwooleTask机制的封装和加强。 任务投递 任务投递Task::delive...
Swoft在PHPer圈中是一个门槛较高的Web框架,不仅仅由于框架本身带来了很多新概念和前沿的设计,还在于Swoft是一个基于Swoole的框架。Swoole在PHPer圈...
@异想天开_42a5 这里的配置指的是注解,参考下上文第一段。
[原创]Swoft源码剖析-Swoft中AOP的实现原理AOP(面向切面编程)一方面是是开闭原则的良好实践,你可以在不修改代码的前提下为项目添加功能;更重要的是,在面向对象以外,他提供你另外一种思路去复用你的琐碎代码,并将其和你的...
为什么需要引入连接池? 对于基于php-fpm的传统php-web应用,包括且不限于Mysql,Redis,RabbitMq,每次请求到来都需要为其新建一套独享的的连接,这直...