Ich arbeite derzeit an einer großen Implementierung von Class::DBI für eine bestehende Datenbankstruktur, und bin in ein Problem mit dem Löschen des Cache von Class::DBI laufen. Dies ist eine mod_perl-Implementierung, so dass eine Instanz einer Klasse ziemlich alt sein kann, zwischen Zeiten, die es zugegriffen wird. In den Man Pages habe ich zwei Optionen gefunden:
Music::DBI->clear_object_index();
Und:
Music::Artist->purge_object_index_every(2000);
Wenn ich nun clear_object_index() zur DESTROY-Methode hinzufüge, scheint sie ausgeführt zu werden, leert aber nicht wirklich den Cache. Wenn ich die Datenbank manuell ändere und die Anforderung erneut ausführe, ist es immer noch die alte Version. purge_object_index_every sagt, dass der Index alle n Anfragen geleert wird. Wenn ich dies auf "1" oder "0" setze, scheint der Index zu löschen... manchmal. Ich würde erwarten, dass eine dieser beiden Einstellungen funktioniert, aber aus irgendeinem Grund tut sie das nicht jedes Mal. Eher 1 von 5 Mal.
Haben Sie einen Vorschlag, wie man das beseitigen kann?