現在、既存のデータベース構造に対する Class::DBI の大規模な実装に取り組んでおり、Class::DBI からキャッシュをクリアする際に問題が発生しています。これは mod_perl の実装であるため、クラスのインスタンスは、アクセスされるまでかなり古いものになる可能性があります。man ページから、2 つのオプションを見つけました。
Music::DBI->clear_object_index();
と:
Music::Artist->purge_object_index_every(2000);
ここで、clear_object_index() を DESTROY メソッドに追加すると、実行されているように見えますが、実際にはキャッシュが空になりません。データベースを手動で変更し、リクエストを再実行できますが、まだ古いバージョンのままです。purge_object_index_every は、n 回のリクエストごとにインデックスをクリアすることを示しています。これを「1」または「0」に設定すると、インデックスがクリアされるようです...時々。これらの 2 つのうちの 1 つが機能することを期待していますが、何らかの理由で毎回機能するとは限りません。5回に1回くらい。
これをクリアするための提案はありますか?