资讯专栏INFORMATION COLUMN

PHP:消息系统-消息事物模式(代码全篇)

dkzwm / 3327人阅读

摘要:目录介绍消息事物类主业务类事物类消息事物类消息标签未发送确认发送发送成功已取消请求发送消息根据进行处理只记录消息数据不发送消息标记消息为返回消息唯一标识确认发送消息根据对消息进行处理发送消息数据标记消息为消息发送成功后标记消息为取消发送消息

目录介绍

MessageTr.php 消息事物类

Business.php 主业务类

BusinessDb.php DB事物类

MessageTr.php

Business.php
messageTr = new MessageTr();
    }

    /**
     * 业务处理
     */
    public function deal()
    {
        //初始化
        $this->init();
        /** 发送消息事物请求
         * @var $uniqueId string 消息事物返回的唯一标识
         */
        $uniqueId = $this->messageTr->mtSend();
        //记录本地消息
        $this->message();
        //事物
        $tr = new BusinessDb();
        $tr->trBegin();
        //TCC事物模型 try-commit-cancel
        try{
            //业务处理 do something
            //事物提交
            $tr->trCommit();
            //确认发送消息事物
            $this->messageTr->mtSure($uniqueId);
            //改变本地消息
            $this->message();
        }catch (Exception $exception){
            //事物回滚
            $tr->trRollback();
            //回滚消息事物
            $this->messageTr->mtCancel($uniqueId);
            //改变本地消息
            $this->message();
        }
    }

    public function message()
    {
        //记录消息的发送,确认发送,回滚
    }
}
BusinessDb.php

图解

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/31152.html

相关文章

  • PHP+RabbitMQ实现消息队列(代码全篇)

    摘要:前言先安装对应的这里用的是不同的扩展实现方式会有细微的差异扩展地址具体以官网为准介绍配置信息基类生产者类消费者类消费者可有多个配置交换机路由生产者路由只控制发送成功不接受消费者是否收到频道 前言 先安装PHP对应的RabbitMQ,这里用的是 php_amqp 不同的扩展实现方式会有细微的差异. php扩展地址: http://pecl.php.net/package/amqp 具...

    weakish 评论0 收藏0
  • 面向对象设计与分析--概念篇

    摘要:什么事面向对象面向对象方法是一种运用对象,类,继承,封装,聚合,关联,消息,多态等概念和原则来构造软件系统的开发思想方法。面向对象方法以众多的类及交互模式类间的协同工作为中心。 1.什么事面向对象? 面向对象方法是一种运用对象,类,继承,封装,聚合,关联,消息,多态等概念和原则来构造软件系统的开发思想(方法)。 2.面向对象中的的基本概念: A.对象:把问题域中的事物抽象地表示为系统中...

    王军 评论0 收藏0
  • 关于MQ的几件小事(四)如何保证消息不丢失

    摘要:消费端弄丢了数据关闭自动提交,在自己处理完毕之后手动提交,这样就不会丢失数据。弄丢了数据一般要求设置个参数来保证消息不丢失给设置参数这个值必须大于,表示要求每个必须至少有个副本。上一篇如何保证消息不重复消费下一篇如何保证消息按顺序执行 1.mq原则 数据不能多,也不能少,不能多是说消息不能重复消费,这个我们上一节已解决;不能少,就是说不能丢失数据。如果mq传递的是非常核心的消息,支撑核心的业...

    stackvoid 评论0 收藏0
  • Hola~ 一款基于Electron的聊天软件

    摘要:前言本项目旨在从零到壹,制作一款界面精美的聊天软件。因为本人是开发,设计功底欠缺,所以软件设计的有点丑,如果有大神有更好的,欢迎。 Hola 前言 本项目旨在从零到壹,制作一款界面精美的聊天软件。 Github 地址因为已工作,所以可能没有多少时间来继续跟进这个项目了,项目可优化的点已在下文列出,欢迎大家 Fork 或 Star。 ps: 征 logo 一枚。因为本人是开发,设计功底...

    Kaede 评论0 收藏0
  • 消息中间件——RabbitMQ(二)各大主流消息中间件综合对比介绍!

    摘要:主流消息中间件介绍是由出品,是一个完全支持和规范的实现。主流消息中间件介绍是阿里开源的消息中间件,目前也已经孵化为顶级项目。 showImg(https://img-blog.csdnimg.cn/20190509221741422.gif);showImg(https://img-blog.csdnimg.cn/20190718204938932.png?x-oss-process=...

    hiyang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<