Ich habe eine Reihe von Rake-Aufgaben, für die ich gerne ein Umgehungs-ähnliches Verhalten implementieren würde. Insbesondere suche ich nach einer Möglichkeit, sicherzustellen, dass alle meine Rake-Aufgaben in einem bestimmten (komplizierten, abgeleiteten) Time.use_zone
-Block ausgeführt werden.Wie kann ich Hake-ähnliches Verhalten für Rake-Aufgaben bekommen?
Für Analogie, ich habe dies in meinem ApplicationController
:
around_filter :use_time_zone
def use_time_zone
time_zone = non_trivial_derivation
Time.use_zone(time_zone) { yield }
end
Und jetzt alle meine Controller-Aktionen werden in der angegebenen Zeitzone entsprechend auszuführen. Ich hätte gerne einen Mechanismus wie diesen für Rake. Ich wäre bereit, die Abhängigkeitskette für meine Rake-Aufgaben zu ändern oder zu ändern, aber ich möchte den tatsächlichen Zeitzonen-Ableitungscode nicht an der Spitze jeder Rake-Aufgabe einfügen, aus Gründen, die zu einer Fragilität der Wartung führen würden. Ich bin ziemlich sicher, dass Rake-Abhängigkeiten die Lösung halten - schließlich erlauben Rake-Abhängigkeiten, dass ich Code im Kontext meiner Rails-Anwendung ausführen kann. Aber ich kann mir nicht vorstellen, wie man das für diesen Anwendungsfall schafft.