Ice_cube ist eine Ruby-Bibliothek zur effektiven Verwaltung sich wiederholender Ereignisse (Zeitpläne). Die Stärke liegt in der Fähigkeit, mehrere Regeln anzugeben und dafür zu sorgen, dass ice_cube schnell erkennt, ob der Zeitplan auf ein bestimmtes Datum fällt (.occurs_on?) oder zu welchen Zeiten er stattfindet (.occurrences, .first, .all_occurrences). So erhalten Sie Ice Cube. Für die Installation verwenden Sie die folgende Syntax gem install, wenn Sie den Code erhalten möchten
Gem-Klon git://github.com/seejohnrun/ice_cubeZum Erstellen eines Eiswürfelplans
Schedule = IceCube::Schedule.new Wenn wir Startdatum und Enddatum angeben möchten, haben wir die Möglichkeit, im oben genannten Zeitplan anzugeben: Schedule = IceCube::Schedule.new(start = Time.now, :end_time => start + 600)Tagespläne Nach dem Erstellen des Zeitplans haben wir die Möglichkeit, eine Wiederholungsregel für den oben genannten Zeitplan hinzuzufügen, z. B. „Täglich planen“ zur oben genannten Zeit
Schedule.add_recurrence_rule IceCube::Rule.dailyBetrachten Sie den gleichen Zeitplan mit einer Wiederholung von „n“ Tagen
Schedule.add_recurrence_rule IceCube::Rule.daily(repeat_every_n_days)Anstelle von „repeat_every_n_days“ haben Sie die Möglichkeit, die Anzahl der Tage anzugeben Wöchentliche Zeitpläne Wiederkehrende Regel zum Generieren eines Wochenplans
Schedule.add_recurrence_rule IceCube::Rule.weeklyWiederkehrende Regel zum Hinzufügen von n Wochen mit dem gleichen Zeitplan
Schedule.add_recurrence_rule IceCube::Rule.weekly(repeat_every_n_weeks)Stellen Sie sich ein Beispiel vor: Wiederholen Sie den Zeitplan nur an Wochentagen (Montag bis Freitag).
Schedule.add_recurrence_rule IceCube::Rule.weekly.day(1, 2, 3, 4, 5)Alle zwei Wochen am Montag und Dienstag
Schedule.add_recurrence_rule IceCube::Rule.weekly(2).day(:monday, :tuesday) oder Sie können als erwähnen
Schedule.add_recurrence_rule IceCube::Rule.weekly(2).day(:monday, :tuesday)Monatliche Zeitpläne Wiederholen Sie jeden Monat den gleichen Zeitplan
Schedule.add_recurrence_rule IceCube::Rule.montlyMonatliche Zeitpläne (nach Tag des Monats) jeden Monat am ersten und letzten Tag des Monats
Schedule.add_recurrence_rule IceCube::Rule.monthly.day_of_month(1, -1)jeden zweiten Monat am 15. des Monats
Schedule.add_recurrence_rule IceCube::Rule.monthly(2).day_of_month(15)Monatlich (nach Tag der N-ten Woche) # jeden Monat am ersten und letzten Dienstag des Monats
Schedule.add_recurrence_rule IceCube::Rule.monthly.day_of_week(:tuesday => [1, -1])# alle zwei Monate am ersten Montag und letzten Dienstag
Schedule.add_recurrence_rule IceCube::Rule.monthly(2).day_of_week(:monday => [1],:tuesday => [-1])Jährlich (nach Tag des Jahres) # jedes Jahr am 100. Tag von Anfang und Ende des Jahres
Schedule.add_recurrence_rule IceCube::Rule.yearly.day_of_year(100, -100)# alle vier Jahre an Silvester
Schedule.add_recurrence_rule IceCube::Rule.yearly(4).day_of_year(-1)Jährlich (nach Monat des Jahres) # jedes Jahr am selben Tag wie start_time, jedoch im Januar und Februar
Schedule.add_recurrence_rule IceCube::Rule.yearly.month_of_year(:january, :februrary)# alle drei Jahre im März
Schedule.add_recurrence_rule IceCube::Rule.yearly(3).month_of_year(:march)# für programmgesteuerte Bequemlichkeit (wie oben)
Schedule.add_recurrence_rule IceCube::Rule.yearly(3).month_of_year(3)Stündlich (nach Tageszeit) # jede Stunde zur gleichen Minute und Sekunde wie das Startdatum
Schedule.add_recurrence_rule IceCube::Rule.hourly# alle zwei Stunden, montags
Schedule.add_recurrence_rule IceCube::Rule.hourly(2).day(:monday) Minutenweise (alle N Minuten)# alle 10 Minuten
Schedule.add_recurrence_rule IceCube::Rule.minutely(10)# alle anderthalb Stunden, am letzten Dienstag des Monats
Schedule.add_recurrence_rule IceCube::Rule.minutely(90).day_of_week(:tuesday => [-1])Zweitens (alle N Sekunden) # jede Sekunde
Schedule.add_recurrence_rule IceCube::Rule.secondly# alle 15 Sekunden zwischen 12:00 und 12:59 Uhr
Schedule.add_recurrence_rule IceCube::Rule.secondly(15).hour_of_day(12)Mit ice_cube können Sie auch Ausnahmezeiten angeben. Beispiel: Wiederholung Jeden Tag außer morgen
Schedule = IceCube::Schedule.new(now = Time.now) Schedule.add_recurrence_rule(IceCube::Rule.daily) Schedule.add_Exception_time(now + 1.day) Vorkommen auflisten bis End_Time Vorkommen = Schedule.Occurrences(End_Time)# oder die ersten (n) Vorkommen
Schedule.first(n)# oder die letzten (n) Vorkommnisse (wenn der Zeitplan endet)
Schedule.last(n)Zeitzonen und ActiveSupport im Vergleich zu Standard-Ruby-Zeitklassen ice_cube funktioniert hervorragend ohne ActiveSupport, unterstützt jedoch nur die einzelne „lokale“ Zeitzone (ENV['TZ']) oder UTC der Umgebung. Um mehrere Zeitzonen korrekt zu unterstützen (insbesondere für die Sommerzeit), sollten Sie „active_support/time“ benötigen. Die Vorkommnisse eines Zeitplans werden in derselben Klasse und Zeitzone wie die start_time des Zeitplans zurückgegeben. Die Startzeiten des Zeitplans werden wie folgt unterstützt:
- Time.local (Standard, wenn keine Zeit angegeben ist)
- Zeit.utc
- ActiveSupport::TimeWithZone (mit Time.zone.now, Time.zone.local, time.in_time_zone(tz))
- DateTime (veraltet) und Date werden in eine Time.local konvertiert
yaml = Schedule.to_yaml IceCube::Schedule.from_yaml(yaml) hash = Schedule.to_hash IceCube::Schedule.from_hash(hash) ical = Schedule.to_ical IceCube::Schedule.from_ical(ical)Mit deinen Worten ice_cube kann ical- oder string-Darstellungen einzelner Regeln oder des gesamten Zeitplans bereitstellen.
Rule = IceCube::Rule.daily(2).day_of_week(:tuesday => [1, -1], :wednesday => [2])
Rule.to_ical # 'FREQ=DAILY;INTERVAL=2;BYDAY=1TU,-1TU,2WE'
Rule.to_s # 'Alle 2 Tage am letzten und 1. Dienstag und am 2. Mittwoch'Lesen Sie auch: Ein detaillierter Blick auf die Funktionen und Änderungen von Rails 5 : Ruby on Rails vs CakePHP – Der Kampf geht weiter : Scraping von Websites mit Mechanize Gem SchienenCarma bereitgestellt hat Ruby on Rails-Entwicklungs- und Beratungsdienstleistungen aus den letzten 8 Jahren Unsere Entwickler sind mit der Durchführung aller Arten von Ruby-on-Rails-Entwicklungsarbeiten und der Abwicklung von Projekten jeder Art bestens vertraut. Kontaktiere uns um mehr über unsere Entwicklungskompetenzen und die Projekte zu erfahren, die wir bearbeiten können.
Katneni Naga Sai Tejaswi
Sr. Softwareentwickler
Abonnieren Sie die neuesten Updates
zusammenhängende Posts