2012-01-25 60 views
6

是否有方法在Resque-workers中传递对象作为参数值。在Resque-Worker中传递对象作为参数

我想要做这样的事情Resque.enqueue(SomeWorker, obj)而不是Resque.enqueue(SomeWorker, id)我的对象是不同类型的,它没有id。

感谢任何帮助。

回答

12

作为一种最佳实践,您不应该将实际的物体传递给工人。

这个想法是,您将最少的信息传递给您的工作人员,意味着一个ID,以便工作人员可以检索其余的信息本身。

由于数据在redis中是持久的,所以实际上需要在排队时编组对象,然后在工作人员检索数据时解组它。

如果你的对象只是持有一些数据,你应该考虑把它作为一个散列来传递,因为它们很容易在redis中持久化。