【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)
        {
        }
    };
};
相关推荐
C+++Python15 小时前
C++ 进阶学习完整指南
java·c++·学习
sparEE16 小时前
c++值类别、右值引用和移动语义
开发语言·c++
jrrz082816 小时前
Apollo MPC Controller
c++·自动驾驶·apollo·mpc·横向控制·lateral control
Jackyzhe17 小时前
从零学习Kafka:消费者组重平衡
分布式·学习·kafka
海南java第二人17 小时前
ClickHouse 部署模式完全指南:从单机到分布式集群的生产级选型
分布式·clickhouse
小王C语言18 小时前
【线程概念与控制】:线程封装
jvm·c++·算法
学习,学习,在学习18 小时前
Qt工控仪器程序框架设计详解(工控多仪器控制版本)
开发语言·c++·qt
信竞星球_少儿编程题库19 小时前
2026年全国信息素养大赛算法应用主题赛 丝路新城 C++ 模拟卷(三)
开发语言·c++
Zhang~Ling19 小时前
深入解析C++list:从0到1实现一个完整的链表类
c++·链表·list
gQ85v10Db20 小时前
Redis 分布式锁进阶第三十四篇
数据库·redis·分布式