首页 » Web前端 » phpmq多线程技巧_万能通用的异步实战筹划设计多线程mq

phpmq多线程技巧_万能通用的异步实战筹划设计多线程mq

访客 2024-12-18 0

扫一扫用手机浏览

文章目录 [+]

本日给大家分享万能通用的异步实战,涉及多线程MQ和数据库的整合。
这个demo我也会放到我的java高并发实战课程里面。

首先看这样的一个接口,在这边调用了service里面的方法。
现在想让这个方法根据一定的策略进行异步处理,比如就可以在它上面加一个表明,这边便是有一个异步实行的表明,这个里面有一个异步实行策略,还有延迟处理韶光,包括业务的描述。

phpmq多线程技巧_万能通用的异步实战筹划设计多线程mq

紧张看一下异步实行策略,便是列举类,比如可以先保存数据库,再异步处理。
比如还可以先同步处理失落败,再保存数据库。
还可以先异步处理,如果处理失落败,再保存数据库。
比如还可以仅异步处理,仅异步线程处理。

phpmq多线程技巧_万能通用的异步实战筹划设计多线程mq
(图片来自网络侵删)

这个里面的每一个列举值都是一种方案,这个肯定便是对应着service,就类似于策略模式。
就在这边找到了很多的service,比如就以先异步处理处理失落败,再保存数据库为例。

这样的方法实行也很大略,便是先把放到MQ里面,如果实行成功就直接返回,如果实行失落败就把任务放到数据库。
保存到数据库之后,数据库就有失落败的任务了,这个时候就可以开启定时任务,定时调度去进行重试。

当然这边还有一个异步补偿的定时任务,紧张的逻辑在sql里面,便是判断一个小时之前有没有未实行的任务,如果有就对它进行补偿的实行。

这边还整合了MQ,比如这边整合了RabbitMQ,通过这样的方法进行发送,在这边通过这个方法进行监听。
通过这样的绑定关系,在项目启动的时候就可以自动的创建queue以及exchange,并且把行列步队跟交流机进行绑定。

来测试一下接口,这个里面有一个execute的方法,想让它根据配置的这样的策略进行实行。
比如是先保存数据库,再异步处理,然后在这边访问一下,可以看到这个OK是急速就返回了,在这边就有对应的日志输出。
比如首先是异步保存数据库,然后发送,终极rabbitmq消费实在便是实行这样的方法,终极实行成功。

这个项目我也会放到我的Java高并发实战课程里面,如果你有兴趣,左下角可以理解一下。

标签:

相关文章