【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)
        {
        }
    };
};
相关推荐
活跃的煤矿打工人2 小时前
【星海出品】分布式存储数据库etcd
数据库·分布式·etcd
charade3124 小时前
【C语言】内存分配的理解
c语言·开发语言·c++
刘某的Cloud5 小时前
rabbitmq常用命令
linux·运维·分布式·rabbitmq·系统
星星点点洲5 小时前
【RabbitMQ】保证消息不丢失
rabbitmq
雾削木7 小时前
mAh 与 Wh:电量单位的深度解析
开发语言·c++·单片机·嵌入式硬件·算法·电脑
慧一居士8 小时前
Zookeeper HA集群搭建
分布式·zookeeper
冼紫菜9 小时前
[特殊字符] 分布式定时任务调度实战:XXL-JOB工作原理与路由策略详解
分布式
Ethon_王9 小时前
走进Qt--工程文件解析与构建系统
c++·qt
工藤新一¹10 小时前
C++/SDL进阶游戏开发 —— 双人塔防游戏(代号:村庄保卫战 13)
c++·游戏·游戏引擎·毕业设计·sdl·c++游戏开发·渲染库
让我们一起加油好吗10 小时前
【C++】类和对象(上)
开发语言·c++·visualstudio·面向对象