ruby-on-rails-3 – 将对象传递给Resque作业是否安全?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails-3 – 将对象传递给Resque作业是否安全?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
将对象传递给Resque作业是否安全?例如:
Resque.enqueue(Foobar,@foo,@bar)

代替:

Resque.enqueue(Foobar,@foo.id,@bar.id)

如果我传递对象的任何缺点?

解决方法

Resque github页面说(https://github.com/defunkt/resque)

… your jobs must only accept arguments that can be JSON encoded.

此外,还有一个应该考虑的效果:传递的对象被复制.比方说,它是数据库中的记录.如果以后,当作业执行时,该对象在数据库中被更改,作业将不会注意到,它将在自己的副本上运行.根据您的要求,这可能是期望的行为,或者可能不是.

如果您传递该对象的id,则可以在作业中检索它的最新版本.

猜你在找的Ruby相关文章