我目前正在为现有数据库结构进行 Class::DBI 的大型实现,并且遇到了从 Class::DBI 清除缓存的问题。这是一个 mod_perl 实现,所以一个类的实例在它被访问的时间之间可能很旧。从手册页中我发现了两个选项:
Music::DBI->clear_object_index();
和:
Music::Artist->purge_object_index_every(2000);
现在,当我将 clear_object_index() 添加到 DESTROY 方法时,它似乎在运行,但实际上并没有清空缓存。我可以手动更改数据库,重新运行请求,它仍然是旧版本。purge_object_index_every 表示它每 n 个请求清除一次索引。将此设置为“1”或“0”,似乎可以清除索引......有时。我希望这两个中的一个可以工作,但由于某种原因,它并不是每次都这样做。更像是五分之一。
有什么建议可以清除这个吗?