Resque Gem: Für Hintergrundprozesse in ROR

Elegant und lustig? Diese Ausdrücke sind nichts, was man mit einer Programmiersprache in Verbindung bringen würde. Rechts? Aber genau das ist Ruby on Rails. Ruby on Rails, besser bekannt als Rails, ist eine rein objektorientierte Programmiersprache mit einfacher und benutzerfreundlicher, sauberer Syntax. Und was einfach und benutzerfreundlich bedeutet, bedeutet, dass Sie eine Webanwendung viel schneller fertigstellen können als mit jeder anderen Programmiersprache. Um live zu gehen, benötigen Sie lediglich einen Webserver und eine Datenbank. Und natürlich einige Juwelen! Das Beste an Ruby ist die riesige Liste kategorisierter, wiederverwendbarer Codes, die passenderweise als „Gems“ bezeichnet werden. Das Schöne an Ruby on Rails liegt darin, dass Sie mit Hilfe dieser Edelsteine im Vergleich zu anderen Technologien Anwendungen einfach und mit deutlich weniger Aufwand erstellen können. Lesen Sie weiter, um mehr über Rasque zu erfahren, das ein Juwel zum Erstellen von Hintergrundjobs ist. Resque erstellt Hintergrundjobs mit Redis. Da es mehrere Warteschlangen unterstützt, können wir sie in mehrere Warteschlangen einordnen und später auch verarbeiten. Und es verfügt über eine Administrationsoberfläche zur Überwachung und Verwaltung der Warteschlangen. Resque ist für den Einsatz in Situationen gedacht, in denen ein hohes Volumen an Stelleneinträgen erforderlich ist, und bietet Mechanismen, um Reflexion und Konsistenz des Verhaltens sicherzustellen und gleichzeitig Statistiken mithilfe eines Web-Dashboards bereitzustellen. Wenn wir über einen langen Codeblock verfügen, den wir nicht innerhalb unseres Webanwendungs-Anforderungszyklus ausführen müssen, ist ein Warteschlangensystem für die Hintergrundverarbeitung die einzig gute Lösung. Daher können wir Ruby-Anwendungen schneller ausführen. Obwohl Resque weitgehend von DelayedJob inspiriert ist, ist Resque wahrscheinlich die bessere Wahl, wenn wir in unserer APP mehrere Warteschlangen benötigen. Wählen Sie Resque, wenn:
  • Sie benötigen mehrere Warteschlangen
  • Sie haben keine besondere Lust auf numerische Prioritäten
  • Sie arbeiten mit riesigen Warteschlangen
  • Sie arbeiten mit Redis
  • Es wird Ihnen nicht an RAM mangeln
Da es eine Reihe von Open-Source-Warteschlangensystemen gibt (delayed_job, Beanstalk), müssen wir nicht unser eigenes schreiben! Hier erfahren Sie, wie Sie das Resque-Warteschlangensystem in einer Ruby on Rails-Anwendung einrichten. Resque-Setup:
bash: brew install redis redis-server /usr/local/etc/redis.conf resque-web rake resque:work QUEUE='*'
Gemfile:
gem 'resque', :require => „resque/server“ Installieren Sie das neue Gem: bundle install Erstellen Sie eine Redis-Konfigurationsdatei namens redis.yml in config: defaults: &defaults host: localhost port: 3002 development: <<: *defaults test : <<: *Standards Staging: <<: *Standards Produktion: <<: *Standards
Fügen Sie eine Initialisierungsdatei namens resque.rb in config/initializers hinzu:
Dir[File.join(Rails.root, 'app', 'jobs', '*.rb')].each { |file| require file } config = YAML::load(File.open(“#{Rails.root}/config/redis.yml”))[Rails.env] Resque.redis = Redis.new(:host => config[' host'], :port => config['port'])
Fügen Sie resque.rake zu lib/tasks hinzu:
require 'resque/tasks' Aufgabe „resque:setup“ => :environment
Laufende Resque:
redis starten: redis-server start resque COUNT=5 QUEUE=* rake resque:workers siehe Web-Benutzeroberfläche: resque-web
So fügen Sie Resque-Jobs hinzu:
Erstellen Sie eine Jobklasse: class FeedsCollectionJob @queue = :feeds_collection_job def self.perform(start_date, end_date) puts „from #{start_date} to #{end_date}“ #TODO Ihr lang laufender Prozess endet hier
Führen Sie es aus mit: Resque.enqueue(FeedsCollectionJob, start_date, end_date) Dieser Befehl blockiert nicht, sodass Sie diesen Code in ein Modell einbetten können. Arbeitskräfte: Sie können auf verschiedene Maschinen verteilt werden, unterstützen die Kernprioritäten, sind resistent gegenüber Speicherlecks und sind optimiert.
Resque-Worker sind Rake-Aufgaben, die ewig laufen. Schleife starten, ausführen, wenn Job = Job reservieren.Prozess, sonst Ruhezustand 5, #, Frequenz = 5, Ende, Ende, Herunterfahren
So starten Sie einen Worker:
$ QUEUE=file_serve rake resque:work
Wir müssen unsere Anwendung in den Speicher laden. Sobald wir Resque als Rails-Plugin installiert haben, können wir diesen Befehl von unserem RAILS_ROOT aus ausführen:
$ QUEUE=file_serve Rake-Umgebung resque:work
Daher wird die Umgebung geladen, sodass Sie jetzt einen Worker starten können. Ansonsten können wir eine resque:setup-Aufgabe mit einer Abhängigkeit von der Umgebungs-Rake-Aufgabe schreiben:
Aufgabe „resque:setup“ => :environment
Selbstbeobachtung: Es sollte mehrere Möglichkeiten geben, Resques Verhalten zu untersuchen. Ich würde Ihnen den besten Ort dafür empfehlen: das integrierte Resque-Web-Dashboard. http://localhost:3000/resque Hier würden wir die Inspektion von Warteschlangen, Arbeitern, aktuell ausgeführten Jobs, fehlgeschlagenen Jobs und Stack-Traces sowie nützlichen Redis-Statistiken ermöglichen. Das Gleiche können wir mit der Konsole tun;
Resque.info Resque.queues Resque.redis Resque.size(queue_name) Resque.peek(queue_name, start=1, count=1) Resque.workers Resque.working
Nun, da haben Sie es! In diesem Artikel geht es um Resque, wie man es konfiguriert und wie dieses Juwel Ihnen dabei hilft, eine Ruby-App mit schnellerer Leistung zu erstellen. Sie haben eine tolle Idee für eine App und möchten diese so schnell wie möglich entwickeln? Entscheiden Sie sich für Ruby on Rails und seien Sie sich dabei bewusst, dass RailsCarma eine gute Wahl für Ihre App-Entwicklung ist. Railscarma hat Ruby on Rails von Anfang an implementiert, um es zu entwickeln, zu schulen, bereitzustellen und einen Beitrag zur Rails-Community zu leisten und bereitzustellen beste Ruby on Rails-Entwicklungsdienste. RailsCarma bietet Unternehmen auf der ganzen Welt End-to-End-Ruby-on-Rails-Dienste einschließlich Beratung, Architektur, Aufbau, Management und Erweiterung. Sie können Ruby on Rails-Entwickler auch über einen einfachen Einstellungsprozess einstellen. Kontaktiere uns mehr wissen. Lesen Sie weitere ähnliche Artikel:

Abonnieren Sie die neuesten Updates

zusammenhängende Posts

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

de_DEGerman