Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将对象(真正的Mongoid文档)序列化为Rails中的任何二进制格式_Ruby On Rails_Serialization_Rabbitmq_Amqp_Binary Serialization - Fatal编程技术网

Ruby on rails 将对象(真正的Mongoid文档)序列化为Rails中的任何二进制格式

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

我实现了异步进程,该进程处理来自mongodb数据库的文档。我有一些类似于主线程的东西,它检查集合中是否存在新对象,然后将其放入队列(
RabbitMQ
),还有几个处理程序(目前只有一个)处理队列中的消息。所以,当我将消息放入队列时,我需要将其序列化为二进制格式,因为我使用的是
amqp
协议。当处理消息时,我需要从二进制数据返回我的对象。顺便说一下,我通过
amqp gem

我尝试使用
BSON gem
执行这些操作,但它只处理哈希和抛出异常,然后尝试序列化对象本身。正在尝试
msgpack rails gem
,但它抛出“undefined method.to_msgpack”错误


因此,请帮助我快速进行二进制序列化和二进制反序列化。谢谢。

您是说要传递整个实例化对象吗?为什么不传递ID并让接收者自己根据mongoid获取对象呢?除此之外,ruby内置的二进制序列化机制称为传递,每次都会额外调用数据库。Db是我的系统中最难使用的部分,所以我试图将Db调用减少到最小。谈论元帅-现在正在尝试。谢谢你的回复。