gpt4 book ai didi

perl - 如何清除 Class::DBI 的内部缓存?

转载 作者:行者123 更新时间:2023-12-03 21:30:49 27 4
gpt4 key购买 nike

我目前正在为现有数据库结构开发 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”,似乎有时会清除索引。我希望这两者之一能够发挥作用,但由于某种原因,它并不每次都能发挥作用。大约五分之一。

有什么建议可以解决这个问题吗?

最佳答案

common problems 上的“Class::DBI wiki”页面有一个section关于这个话题。最简单的解决方案是完全禁用事件对象索引:

$Class::DBI::Weaken_Is_Available = 0;

关于perl - 如何清除 Class::DBI 的内部缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35480/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com