2017-01-30 20 views
0

Ich habe einige Fragen bezüglich verzögerter Job. Ich habe diese zwei Juwelen in der Entwicklung gerade konfiguriert. Aber ich bin mir nicht sicher, ob ich sie benutzen muss oder ob ich sie benutze, wie soll ich sie im Server benutzen. Verzögerter Job: Wann und wie zu verwenden

gem 'delayed_job_active_record' 
gem 'daemons', '~> 1.2', '>= 1.2.3' 
  1. Ich habe eine einfache Anwendung, die E-Mails auf rund 300 bis 400 Kunden zweimal im Jahr zu senden. Ist es notwendig, einen verzögerten Job für eine so kleine Anzahl von E-Mails zu verwenden? Unser Server ist zu diesen zwei Zeiten des Jahres überhaupt nicht beschäftigt.

  2. Wenn ich den verzögerten Job verwende, muss ich zuerst den Daemon starten. In der Entwicklung mache ich es so bundle exec rake jobs:work. Da dieser Prozess immer auf dem Server ausgeführt wird. Führt dies zu Leistungsproblemen? Muss ich einen anderen Server oder etwas verwenden, nur um den Prozess der Verzögerung auszuführen?

  3. Zuletzt, wie Sie den Befehl in der Produktion bundle exec rake jobs:work ausführen. Zur Zeit öffne ich ein Terminal und führe den Befehl aus. Aber ich denke, wenn ich das Terminal schließe, hört auch der Prozess auf. Also, wie soll ich anfangen, damit es im Hintergrund läuft?

+1

Dies ist nur meine Meinung, aber ich denke nicht, dass es überhaupt übertrieben ist, ich denke nicht, dass es irgendwelche Leistungsprobleme verursachen wird. Sie können delayed_job so einstellen, dass nur alle 5 oder 10 Minuten nach Jobs abgefragt wird oder etwas anstelle des wahrscheinlich häufigeren Standardwerts, wodurch die Auswirkungen auf den Server minimiert werden, da dies nicht wie eine unternehmenskritische Operation aussieht. – Iceman

Antwort

1

1. - Ich denke, dass eine gute Praxis ist DJ für alle Asynchron-Jobs zu verwenden, sich vorstellen, dass wir ein oder anyother Fehler mit dem E-Mail-Server und Ihr Kunde würde diese E-Mail nicht erhalten stellen kann , mit DJ, im Falle eines Fehlers wird es den Job später erneut versuchen.

2 - Ich denke, dass Sie nicht einen ganzen Server benötigen, um DJ zu laufen, außer Sie haben schwere Jobs mit langen Bearbeitungszeiten oder eine große Anzahl von Jobs pro Minute, im vorherigen Fall nur ein wenig mehr Speicher ist genug, um das Problem zu lösen.

3. - Ein Upstart-Skript ist der richtige Weg, um dies zu tun, der S.O wird damit umgehen und wird den Dienst neu starten, wenn es unten ist, kann der Edelstein Foreman Ihnen dabei helfen.

Upstart Beispiel: https://larry-price.com/blog/2013/08/31/using-foreman-to-create-an-upstart-service

See ya!

Verwandte Themen