Ich habe eine benutzerdefinierte Rails Modell geschrieben. Dieses Modell wird von einem tatsächlichen Server und nicht von einer Datenbanktabelle unterstützt (erbt also nicht von ActiveRecord::Base
). Um die angeforderten Informationen vom Server zu bekommen, öffne ich eine SSH-Verbindung dazu. Da Rails das Objekt nicht wiederverwenden, wird für jede empfangene Anforderung ein neues Objekt sowie eine neue SSH-Verbindung zum Server erstellt. Um die Serverbelastung zu reduzieren, möchte ich die SSH-Verbindung schließen, bevor das Modellobjekt eine Garbage-Collection erhält. Ich wundere mich, stellt Ruby einen Benachrichtigungsmechanismus zur Verfügung, um das Objekt zu informieren, dass es zerstört wird? Wenn ja, könnte ich diese Benachrichtigung verwenden, um zu wissen, wann die SSH-Verbindungen geschlossen werden müssen. Wenn nicht, muss ich es manuell machen, wenn ich weiß, dass ich mit dem Objekt fertig bin.Mitteilung der Objektzerstörung in Ruby
Wenn ich manuell darum kümmern muß, kann ich das Objekt explizit zerstören? Oder ist das Beste, was ich tun kann, ist object = nil
?