RazorEngine entfernt den Cache für kompilierte Vorlagen

Derzeit verwende ich RazorEngine v2.1 als Teil eines Hintergrundprozesses, der Vorlagen-E-Mails sendet (Tausende von ihnen). Um die Dinge zu beschleunigen, werden die Vorlagen mit ihrer MD5-Summe als Name kompiliert. Auf diese Weise wird eine geänderte Vorlage neu kompiliert und alle E-Mails, die die Vorlage verwenden, können dieselbe kompilierte Vorlage verwenden. Ich verfolge die Namen der kompilierten Vorlagen in einer Liste, damit ich weiß, wann ich compile erneut aufrufen muss (und einige andere Dinge erledige).

Das Problem: Mir ist aufgefallen, dass nach einer sehr langen Zeit und nach vielen Änderungen an Vorlagen alle zwischengespeicherten kompilierten Vorlagen wahrscheinlich immer noch im Speicher sind, da es so aussieht, als würden sie in einem gespeichertdynamic. Für diesen bestimmten Prozess, der ohne Neustart monatelang ausgeführt werden kann, kann dies ein schwerwiegender Speicherverlust sein, wenn alle vorherigen Versionen von Vorlagen noch nicht abgeschlossen sind.

Die Frage: Gibt es eine Möglichkeit, alte Vorlagen aus dem Cache zu entfernen, so dass sie nicht mehr im Cache hängen?dynamic?

Wenn ich zum Beispiel in der Lage wäre, die kompilierten Vorlagenobjekte selbst zu behalten und sie einfach an RazorEngine weiterzuleiten, wenn ich sie verwenden wollte, könnte ich entscheiden, wann ich sie wegwerfe, und das würde den Speicherverlust beseitigen. Wenn RazorEngine dies jedoch bereits umgeht, ist es auch hilfreich, dies zu wissen, da ich im Internet nicht viele Verweise auf dieses bestimmte Problem finden kann. Es gibt viele Gründe, warum kompilierte Vorlagen verwendet werden sollten, um die Speichernutzung zu verringern, aber ich konnte nur schwer feststellen, dass sich in einer langlebigen Anwendung Tonnen und Tonnen nicht verwendeter kompilierter Vorlagen ansammeln.

EDIT: Ich habe gerade etwas darüber gelesen, wie das Caching funktioniert und dass, wenn derselbe Name mit einer anderen Vorlage übergeben wird, diese erneut zwischengespeichert und die alte verworfen wird. Das Problem bleibt jedoch bestehen, da im Laufe der Zeit E-Mails hinzugefügt und entfernt werden und mit der Zeit alle alten entfernten E-Mails weiterhin vorhanden sind (auch wenn keine Kopien jeder Version der Vorlage gespeichert werden).

Antworten auf die Frage(3)

Ihre Antwort auf die Frage