首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >持久化队列:在节点-amqp中序列化/反序列化队列对象

持久化队列:在节点-amqp中序列化/反序列化队列对象
EN

Stack Overflow用户
提问于 2014-03-04 16:26:57
回答 1查看 481关注 0票数 1

我正在使用node-amqp模块来管理rabbitmq订阅。具体来说,我正在为每个用户/会话分配一个独占/私有队列,并通过REST接口提供绑定方法。例如,“将队列绑定到此exchange/routing_key对”和“将队列解除到此exchange/routing_key对”。

这里的挑战是避免将对队列对象的引用保存在内存中(例如,在具有模块范围的对象中)。

每次我需要连接时,简单地从连接中检索队列本身是很困难的,因为队列对象在内部保持对绑定的监视,这可能是为了避免违反amqp 0.9.1参考文献中的以下内容

客户端不能试图解除不存在的队列。错误代码:找不到

我试图简单地将queue对象设置为会话对象上的一个属性,因为它对其属性使用了JSON.strgify/JSON.Analysis。不幸的是,由于循环结构,队列对象无法“字符串化”。

从节点-amqp模块持久化队列对象的最佳实践是什么?是否可以序列化/反序列化?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-10 06:33:26

我不会尝试存储queue对象,而不是使用您可以存储的队列的唯一名称。之后,每当您想在队列上进行操作时,您有两个选项:

  • 在以前打开的队列“通道”的情况下,您应该能够: queue = connection.queuesname 我的意思是连接作为一个节点-amqp连接针对rabbitMQ。
  • 如果您在与rabbitmq的连接中没有打开通道,只需再次打开该通道: Connection.queue(名称= queueName,选项,函数(队列){ //例如请执行取消绑定})

我还使用REST接口来管理rabbitMQ。我的连接对象维护所有队列、通道等.因此,仅在第一次尝试使用调用connection.queue的队列时,下面的请求只是通过connection.queues检索队列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22177459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档