【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)
        {
        }
    };
};
相关推荐
jinyishu_14 小时前
模拟实现 C++ 栈和队列——从适配器模式看懂 STL 容器之美
java·c++·适配器模式
hehelm14 小时前
AI大模型接入SDK—通用模块设计
linux·开发语言·c++
liulilittle15 小时前
论分布式系统的半开闭问题
服务器·网络·分布式·系统架构·竞态
hold?fish:palm16 小时前
RDB全量快照备份
c++·redis·后端
豆瓣鸡17 小时前
XXL-JOB 定时任务——从 Docker 部署到分片广播,分布式任务调度落地
spring boot·分布式·docker·定时任务
盐焗鹌鹑蛋18 小时前
【C++】C++11:列表初始化、声明、STL升级
c++
ComputerInBook19 小时前
c 和 c++ 中的宏块(macro)
c语言·c++··宏块·宏指令
AA陈超20 小时前
004 T02 - 俯视角摄像机系统 设计文档
网络·c++·ue5·虚幻引擎
bu_shuo20 小时前
c与cpp中的argc和argv
c语言·c++·算法
蓝创精英团队20 小时前
VCPKG 跨平台C++ 库管理器
c++·vcpkg