私はRailsでWebベースのIMAPクライアントを作成しており、リクエスト間にIMAPオブジェクトをキャッシュしたいと考えています。私はオブジェクトをシリアライズし、Redisで保存する予定です(文字列のみをキャッシュするので)。しかし、一般的なシリアライズメソッドは動作していないようです。Ruby/RailsでNet :: IMAPオブジェクトをキャッシュ/シリアル化するにはどうすればよいですか?
元帥とactivesupportの::キャッシュ:: MemoryStoreの両方が、次のエラーに
Marshal.dump(imap)
TypeError: no marshal_dump is defined for class Mutex
YAMLシリアライゼーション作品を与えるが、デシリアライズに失敗しました。
s = YAML::dump(imap) # works, i.e. loads up a string with the imap data
imap2 = YAML::load(s)
TypeError: allocator undefined for Thread
任意のルビオブジェクト、特に内部的にスレッドを使用している可能性がある他の代替キャッシュメカニズムがありますか?代替キー値ストア(私はRedisを使用しています)がそのようなキャッシュをサポートしていますか? さらに良いですが、とにかくRailsにはがありますか?私はそれらをデシリアライズするのではなく、特定のオブジェクトを覚えていますか?
PS> MacBookでRuby 1.9.2とRails 3.0.3を使用しています。
データのシリアライズは、私が今やっていることです(最初はデータと接続の両方をキャッシュしようとしていました)。 グローバルIMAP接続とはどういう意味ですか?あなたはどうやってそれをしますか?クラスレベルの変数? –