Wie schreibe ich einen robusten, nie endenden Prozess?

8

Ich habe eine andere Frage zur Verzeichnisüberwachung gestellt, die beantwortet wurde, aber die andere Hälfte der Frage lautet, wie man am besten einen unendlichen Prozess in Ruby erstellt, um dies zu tun. Hier sind die Anforderungen:

  • laufe für immer
  • sei überwachbar (d. h., ob es oben oder unten ist)
  • habe eine Art, es neu zu starten und sicherzustellen, dass es soweit ist (Gott?)
  • start / stop mit Capistrano (wäre nett!)

Wir haben uns BackgroundRb angesehen, aber das scheint etwas veraltet und um ehrlich zu sein unzuverlässig! Wir haben uns DelayedJob angesehen, aber das scheint auf einmalige Jobs ausgerichtet zu sein (weil ein nie endender Job jeden anderen Job daran hindert, fertig zu werden, da Jobs sequentiell ausgeführt werden).

Wir betreiben eine Menge Ubuntu-Server, die unsere Umgebung bilden.

Irgendwelche Ideen?

    
phil 04.02.2011, 18:44
quelle

4 Antworten

3

Ich habe eine Event-Machine-Schleife, die einige nginx-Log-Dateien zurücklegt und sie in MongoDB legt. Die "Log Esser" Skripte laufen mit Ruby Daemons. Ссылка

Ich habe festgestellt, dass es viel zuverlässiger ist als Gott. Dadurch wird auch das Skript überwacht und neu gestartet, wenn es abstürzt. Wenn du eine Benachrichtigung möchtest, wenn der Läufer stirbt, kannst du monit dazu verwenden.

Hier ist mein Laufskript für Dämonen:

%Vor%

Dies läuft seit vielen Monaten ohne oder mit keinem Problem. Gott hatte Probleme mit Lecks und Sterben. Capistrano kann dies durch einen Neustart Ihres Startskripts neu starten.

Hier ist ein Auszug von mir für gentoo linux

%Vor%

- nach dem Start-Befehl für alle Argumente, die an Ihr Skript übergeben werden sollen.

    
Michael Papile 04.02.2011, 19:23
quelle
0

Ich würde wahrscheinlich daemon-kit sehen. Nicht sicher, ob es alle Ihre Anforderungen jedoch erfüllt:

Ссылка

    
Michael Kohl 04.02.2011 19:22
quelle
0

In Ihrem Fall würde ich Resque verwenden. Es scheint Ihre Anforderungen zu erfüllen. Ich glaube, es kommt mit Beispielskripten für Capistrano zur Kontrolle der Arbeiter. Die Überwachung der Arbeiter mit Gott ist ein wenig komplizierter, aber es kommt mit einer Webkonsole, so dass Sie sehen können, was Ihre Arbeiter vorhaben. Es gibt eine Menge Plugins für Sie, um Ihre Bedürfnisse zu erfüllen.

Ссылка

    
PatrickTulskie 05.02.2011 06:55
quelle
0

Siehe Paul Dix 'Buch Service-orientiertes Design mit Ruby and Rails . Schau auch auf Sinatra .

    
Steve Wilhelm 04.02.2011 19:22
quelle

Tags und Links