当前位置: 首页 > article >正文

【RabbitMQ 项目】客户端:消费者模块

和服务端的消费者实现方式一模一样,只不过服务端的消费者的回调函数是把消息封装成响应并发送,固定都是这个动作,而客户端消费者回调是用来处理消息,是用户自己设置的。

#pragma once
#include "../common/Log.hpp"
#include "../common/message.pb.h"
#include <functional>
#include <memory>
#include <atomic>
#include <mutex>
#include <vector>
#include <unordered_map>
namespace ns_consumer
{
    using namespace ns_log;

    struct Consumer;
    using ConsumerPtr = std::shared_ptr<Consumer>;
    using ConsumerCallback_t = std::function<void(const ns_data::Message& msg)>;
    struct Consumer
    {
        std::string _id;
        std::string _qname;
        ConsumerCallback_t _callback;
        bool _autoAck;

        Consumer(const std::string id, const std::string &qname, ConsumerCallback_t callback, bool autoAck)
            : _id(id),
              _qname(qname),
              _callback(callback),
              _autoAck(autoAck)
        {
        }
    };
};

http://www.kler.cn/a/322202.html

相关文章:

  • WEB3.0是什么?
  • 「JavaScript深入」聊一聊 new操作符具体干了什么?
  • Springboot Mybatis操作数据库
  • 高精度图像尺寸测量仪(闪测仪)测量内径深度
  • CSS的弹性盒子模型(Flex box)
  • 【Hive】学习路线:架构、运维、Hsql实战、源码分析
  • 如何将Excel表格嵌入Web网页在线预览、编辑并保存到自己服务器上?
  • 大数据毕业设计选题推荐-安顺旅游景点数据分析系统-Hive-Hadoop-Spark
  • docker-compose up -d 和 docker run -d your_image_name 的区别
  • 原生app云打包,更换图标,和名称。PDA的安装正式包
  • web入门
  • Codeforces Round 972 (Div. 2) A~E
  • 事务 Atomicity Consistency Isolation Durability
  • 七大机器学习常用库一次讲清楚(TensorFlow|Scikit-Learn|NumPy|Keras|PyTorch|LightGBM||NLTK)
  • 局域网广域网,IP地址和端口号,TCP/IP 4层协议,协议的封装和分用
  • html+css(如何用css做出京东页面,静态版)
  • SQL关键字的优先级执行顺序:深入理解SQL查询的构造
  • Debian安装mysql遇到的问题解决及yum源配置
  • 常用前端框架对比和选择
  • Mac pnpm安装