1

我开始使用延迟作业 gem,现在我试图延迟对接受对象的方法的调用{:val=>'my name'}

我的电话是这样的:

User.delay.my_static_method(my_object)

这是不允许的,因为无法将对象保存在数据库中,所以我如何将此对象序列化为字符串以延迟,然后返回到我的方法中的对象?

谢谢

4

2 回答 2

1

如果它们足够小,请尝试 Ruby 的内置序列化http://www.ruby-doc.org/core-2.0/Marshal.html

如果您有比 更复杂的序列化需求Marshal,那么像http://msgpack.org/这样的东西可以工作。

于 2013-03-18T22:46:11.423 回答
0

例如,您可以将对象的 ID 传递给您的延迟方法调用。但是在传递给定对象之前将其保存到数据库或文件。

然后在您的 Worker 类代码中,您应该按 ID(如果您将其保存到 DB)或按文件名(如果您将其保存为文件)检索给定的对象。

于 2013-03-18T22:40:57.353 回答