Planen von Aufgaben mit Ruby on Rails
"Nächste Woche kann es keine Krise geben. Mein Terminplan ist bereits voll." Dieses freche Zitat von Henry Kissinger erklärt, wie wichtig es ist, einen Zeitplan zu haben. Ob im Leben oder in der Technik, Zeitplanung ist wichtig. Wenn es um Ruby on Rails geht, das Konventionen der Konfiguration vorzieht, ist ein Scheduler ein Muss. Scheduling Job kann definiert werden als "ein Entscheidungsprozess der Bindung von Ressourcen zwischen verschiedenen Arten von Aufgaben". Es handelt sich im Grunde um eine Funktion, die es ermöglicht, Routineaufgaben als Teil einer Sequenz oder zu einer vordefinierten Zeit auszuführen, wie z.B. die Durchführung von Wartungsarbeiten beim Abrufen von RSS-Feeds. Diese geplanten Aufgaben, die im Hintergrund ausgeführt werden, werden von "Workern" ausgeführt. Wie lassen sich Aufgaben in einer Rails-Umgebung also am besten planen? Normalerweise können Entwickler anwendungsspezifische Cron-Jobs verwenden, um die Aufgaben auszuführen, aber Cron-Jobs sind für die Planung von Dingen gedacht, nicht für deren Ausführung. Sie funktionieren auch gut auf einem einzelnen Server, aber wenn man sie auf mehrere Server skalieren möchte, funktionieren sie nicht so gut. Außerdem sind sie schwer zu debuggen und zeitaufwändig. Wie können Sie also sicherstellen, dass Ihr Scheduling gut und ohne Abhängigkeiten oder zu viel Syntax funktioniert? Whenever" kommt zu Ihrer Rettung! Sehen Sie sich an, wie Sie mit dem Gem 'whenever' Cron-Jobs mit Ruby erstellen können.Was ist Wann immer ein Edelstein?
Es wird zum Schreiben und Bereitstellen von Mais-Aufträgen mit klarer Syntax verwendet.Wie wird es installiert?
gem 'whenever', :require => falseNach der Installation müssen wir in der Konsole "wheneverize ." eingeben, was automatisch die Datei schedule.rb im Ordner config erstellt. Innerhalb der Datei schedule.rb können wir die Funktion basierend auf Zeit, Datum, Monat, etc. planen. Beispiel:
alle 1.Tag, :at => '10:00 Uhr' do rake "sow:events_reminder_mail", :environment => :development endBevor wir die Aktion planen, müssen wir innerhalb des lib-Ordners einen Task-Ordner erstellen, innerhalb des Task-Ordners können wir eine Rake-Datei erstellen, deren Namen wir nur für die Planung der Aktion verwenden müssen
rake "sow:events_reminder_mail", --> rake Dateiname mit Aufgabe Name :environment => :development ---> Wir müssen die Umgebung angebenIn der Rake-Datei können wir die Bedingung angeben und User Mailier für den Versand der E-Mail verwenden, so dass User Malier die E-Mail basierend auf der Planungszeit, dem Datum, dem Monat, etc. sendet. Beispiel:()
desc "Ereignisse inaktiv" Aufgabe :events_inactive => :environment do @events = Event.where(:end_date=>Date.today-1.days) @events.each do |event| event.update_attributes(:published_status=>false,:inactive_dat e=>Date.today) end endReferenz: https://github.com/javan/whenever
Abonnieren Sie die neuesten Updates
zusammenhängende Posts