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

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

cpp 复制代码
#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)
        {
        }
    };
};
相关推荐
普通网友19 分钟前
C++中的组合模式
开发语言·c++·算法
江公望23 分钟前
Qt QByteArray类型,10分钟讲清楚
开发语言·c++·qt
芭比萌妹23 分钟前
apisix的kafka-logger设置日志格式log_format,不支持单个路由设置
分布式·kafka
2501_9411114628 分钟前
C++中的组合模式变体
开发语言·c++·算法
z***02601 小时前
【RabbitMQ】超详细Windows系统下RabbitMQ的安装配置
windows·分布式·rabbitmq
普通网友1 小时前
单元测试在C++项目中的实践
开发语言·c++·算法
沐怡旸2 小时前
【穿越Effective C++】条款22:将成员变量声明为private——封装的边界与设计的自由
c++
回家路上绕了弯2 小时前
生产环境服务器变慢?从应急到根因的全流程诊断处理指南
分布式·后端
普通网友4 小时前
高性能TCP服务器设计
开发语言·c++·算法
普通网友4 小时前
C++与硬件交互编程
开发语言·c++·算法