Ruby on rails 将对象(真正的Mongoid文档)序列化为Rails中的任何二进制格式
我实现了异步进程,该进程处理来自mongodb数据库的文档。我有一些类似于主线程的东西,它检查集合中是否存在新对象,然后将其放入队列(Ruby on rails 将对象(真正的Mongoid文档)序列化为Rails中的任何二进制格式,ruby-on-rails,serialization,rabbitmq,amqp,binary-serialization,Ruby On Rails,Serialization,Rabbitmq,Amqp,Binary Serialization,我实现了异步进程,该进程处理来自mongodb数据库的文档。我有一些类似于主线程的东西,它检查集合中是否存在新对象,然后将其放入队列(RabbitMQ),还有几个处理程序(目前只有一个)处理队列中的消息。所以,当我将消息放入队列时,我需要将其序列化为二进制格式,因为我使用的是amqp协议。当处理消息时,我需要从二进制数据返回我的对象。顺便说一下,我通过amqp gem 我尝试使用BSON gem执行这些操作,但它只处理哈希和抛出异常,然后尝试序列化对象本身。正在尝试msgpack rails g
RabbitMQ
),还有几个处理程序(目前只有一个)处理队列中的消息。所以,当我将消息放入队列时,我需要将其序列化为二进制格式,因为我使用的是amqp
协议。当处理消息时,我需要从二进制数据返回我的对象。顺便说一下,我通过amqp gem
我尝试使用BSON gem
执行这些操作,但它只处理哈希和抛出异常,然后尝试序列化对象本身。正在尝试msgpack rails gem
,但它抛出“undefined method.to_msgpack”错误
因此,请帮助我快速进行二进制序列化和二进制反序列化。谢谢。您是说要传递整个实例化对象吗?为什么不传递ID并让接收者自己根据mongoid获取对象呢?除此之外,ruby内置的二进制序列化机制称为传递,每次都会额外调用数据库。Db是我的系统中最难使用的部分,所以我试图将Db调用减少到最小。谈论元帅-现在正在尝试。谢谢你的回复。