我開始使用拖延工作的寶石,現在我試圖打電話推遲到接受對象的方法{:val=>'my name'}
傳遞對象作爲字符串延遲作業,然後desirializing回對象
我的電話是這樣的:
User.delay.my_static_method(my_object)
,這是不允許的,因爲對象不能在我的方法保存在DB 讓我怎麼序列化此對象的字符串給予延遲,然後回一個對象?
感謝
我開始使用拖延工作的寶石,現在我試圖打電話推遲到接受對象的方法{:val=>'my name'}
傳遞對象作爲字符串延遲作業,然後desirializing回對象
我的電話是這樣的:
User.delay.my_static_method(my_object)
,這是不允許的,因爲對象不能在我的方法保存在DB 讓我怎麼序列化此對象的字符串給予延遲,然後回一個對象?
感謝
如果他們足夠小的物體,儘量Ruby的內置串行http://www.ruby-doc.org/core-2.0/Marshal.html
如果您有Marshal
更復雜的序列化的需求,然後像http://msgpack.org/可以工作。
您可以傳遞對象的ID給您的延遲方法調用,例如。但在傳遞之前將給定的對象保存到數據庫或文件中。
然後在您的Worker類代碼中,您應該通過ID(如果您將其保存到數據庫)或文件名(如果您將其保存爲文件)檢索給定的對象。
謝謝你,那個伎倆 – 2013-03-18 23:03:55