最近打算开发一个新功能,计划应用消息队列。
以前对消息队列都是简单的理论了解,真正应用之后把自己的感觉和一些理解整理下来。
=================说正事分割线====================
具体的业务场景如下:
用户下单-》生成订单-》支付-》返回支付信息
就是正常的订单逻辑,现在需要在中间做一个功能类似于,统计每张订单的来源,而这个来源就是整个平台的用户。相当于一个推广的策略。
也就是变成了:
用户下单-》判断来源-》生成订单-》支付-》维护来源统计表-》返回支付信息
还要根据来源统计表做一个日,周,月,总 的排行榜这样看来在 维护来源统计表 的时候要维护的数据量还是蛮大的
这样就会把之前的简单的业务逻辑变的复杂 所以才用了-》消息队列,将整个维护来源的操作通过异步的方式来处理 而去有无限的发展空间
这样在不影响整个流程的同时加入了一个写的业务流程。
这个消息队列的具体实现如下:
在这里其实还有很多扩展 嘿嘿 下面就是想象力打开的时候了:
在写入队列的时候可以规定相应的规则如:
{'处理脚本':'test','data':{'test':'test'},'分组':‘1','处理结果':'0'}
这样就可以通过一个消息队列来处理整个项目的所以消息任务
把data发送给相遇的脚本返回处理结果,而这个分组可以实现分组多进程并发处理来解决效率问题。
效率问题的结局还可以在守护进程上进行增加,守护进程跟进当前的任务量发起适当的处理进程,处理进程再分发给具体的业务处理脚本
目前想到的就是这样,至于队列的存储中介,可以是缓存也可以是mysql这就根据具体的应用环境和开发环境来定了。
多进程的实现可以用php的命令行exec或者是curl的并发模式都可以。
先这样吧。