Ich habe einen Ruby-Workflow, der wenige teure API-Aufrufe macht. Ich weiß, wir haben eine einfachere Möglichkeit, Dinge in Ruby on Rails zu cachen, haben aber kein Ruby-Juwel für Ruby-Skripte gefunden.Wie Methoden in Ruby Cache?
Was ist der einfachste und einfachste Weg zum Zwischenspeichern von Ergebnissen für eine Methode, die für eine reine Ruby-Anwendung auf Eingaben angewiesen ist?
//pseudo code
def get_information (id)
user_details = expensive_api_call(id)
return user_details
end
Sie wollen nicht, um die Methode cachen, sondern das Ergebnis des Methodenaufrufes. –
_Sidenote_: Bitte geben Sie niemals ein Leerzeichen zwischen Funktionsnamen und Klammern ein. Dies kann (in verschiedenen Fällen) viele unerwartete Probleme verursachen. – mudasobwa
Wovon du sprichst, ist [Memoisierung] (https://en.wikipedia.org/wiki/Memoization). Sie können die Ausgabe einer Methode basierend auf ihren eingehenden Parametern zwischenspeichern, wenn der aufgerufene Code immer denselben Wert für dieselbe Eingabe zurückgibt. Es gibt jedoch Nachteile beim Caching von Ergebnissen für lang andauernde Prozesse. Wenn ein Wert für eine sehr kurze Zeit verwendet wird, auch wenn er 100 Mal verwendet wird, dann nie wieder verwendet wird, aber für Tage/Wochen/Monate zwischengespeichert wird, dann verschwendet er Ressourcen, also ist es wichtig, sie zeitlich zu begrenzen und zu löschen. –