Mit ActiveSupports extensions to Numeric kann Folgendes geschrieben werden, um zwei Minuten zu erhalten: 2.minutes
.Erstellen einer einzelnen Zeiteinheit (Minute, Woche usw.) mit ActiveSupport
Es gibt jedoch Situationen, in denen nur wenige Zeiteinheiten wichtig sind. Angenommen, es ist eine Aufgabe, die Anwendung jedes ein Tage laufen kann, Woche oder Monat, je nach gewissen Eingang:
@frequency = :day # can be any of the following: [:day, :month, :week]
Active die Erweiterungen Numeric Mit naiver, könnten wir dies tun, um zu bestimmen, wann die Aufgabe ausgeführt werden soll :
def run_every
1.send(@frequency)
end
, die die days
Instanzmethode in Numeric
(die day
Methode ist ein Alias) nennen.
In diesem Szenario interessiert uns nur ein Minute, Tag, Woche, Monat, Jahr, etc. Gibt es eine schönere Möglichkeit, eine andere Zeiteinheit als die beschriebene zu instanziieren?
"Minute" ist eine * Einheit * Zeit, während "1 Minute" * a * Dauer ist. Bist du sicher, dass du '1.minute' und nicht nur': minute' willst? – Stefan
@Stefan das ist vollkommen richtig, und ja, ich bin mir sicher. Ich verwende diese Frequenz, um etwas für die spätere Ausführung zu planen (Sidekiqs 'perform_in', die eine' Zeit' oder eine 'Dauer' benötigt). – brito