delay job gem の使用を開始しました。現在、オブジェクトを受け入れるメソッドの呼び出しを遅らせようとしています。{:val=>'my name'}
私の呼び出しは次のようなものです:
User.delay.my_static_method(my_object)
オブジェクトをDBに保存できないため、これは許可されていません。このオブジェクトを文字列にシリアル化して遅延させ、メソッド内のオブジェクトに戻すにはどうすればよいですか?
ありがとう
delay job gem の使用を開始しました。現在、オブジェクトを受け入れるメソッドの呼び出しを遅らせようとしています。{:val=>'my name'}
私の呼び出しは次のようなものです:
User.delay.my_static_method(my_object)
オブジェクトをDBに保存できないため、これは許可されていません。このオブジェクトを文字列にシリアル化して遅延させ、メソッド内のオブジェクトに戻すにはどうすればよいですか?
ありがとう
それらが十分に小さいオブジェクトである場合は、Rubyの組み込みシリアル化http://www.ruby-doc.org/core-2.0/Marshal.htmlを試してください。
よりも複雑なシリアル化のニーズがある場合は、 http://msgpack.org/Marshal
のようなものが機能する可能性があります。
たとえば、オブジェクトのIDをdelayメソッド呼び出しに渡すことができます。ただし、指定されたオブジェクトをDBまたはファイルに保存してから渡します。
次に、Workerクラスコードで、特定のオブジェクトをID(DBに保存した場合)またはファイル名(ファイルとして保存した場合)で取得する必要があります。