Frage

Ich führe eine Anwendung aus, die einen RUFUS -Scheduler -Prozess in einem Initialisierer startet. Die Anwendung läuft mit Passagier in der Produktion und ich habe ein paar seltsame Verhaltensweisen festgestellt:

Um den Server neu zu starten und sicherzustellen, dass der Initialisierer ausgeführt wird touch tmp/restart.txt und laden Sie die App in einem Browser. Zu diesem Zeitpunkt feuert der Initialisierer. Das Schreckliche ist, dass, wenn Sie nur die Berührung haben, die von Rufus geplanten Prozesse zurückgesetzt werden und erst nachgegeben werden, wenn Sie die App in einem Browser laden.

Allein das kann ich umgehen. Dies führt jedoch zum zweiten Problem: Ich werde feststellen, dass der geplante Vorgang nicht ausgeführt wurde. Daher lade ich eine Seite und plötzlich sagt mir die Protokolldatei, dass die Initialisierer so ausgeführt werden, als würde ich neu gestartet. Irgendwann wird der Passagier zufällig neu gestartet, als hätte ich TMP/restart.txt berührt und meine geplanten Prozesse ausgelöscht.

Ich habe ein unglaublich schlechtes Verständnis für die Integration von Passagier und Rails, daher weiß ich nicht, ob dieses gelegentliche Neustart aberrant oder ganz Teil der Architektur ist. Kann jemand eine Weisheit in dieser Situation anbieten?

War es hilfreich?

Lösung

Was Sie beschreiben, ist die Art und Weise, wie Passagier funktioniert. Es erzeugt neue Fälle der Anwendung, wenn der Verkehr sie garantiert, und schließt sie nach Inaktivitätszeiten für freie Ressourcen ab.

Sie sollten die Passagierdokumentation lesen, insbesondere die Ressourcensteuerungs- und Optimierungsabschnitt. Es gibt Einstellungen, die verhindern können, dass die Anwendung durch Passagier abgeschaltet wird, wenn Sie dies möchten.

Mit der Einstellung von Passagierpoolidletime können Sie mindestens einen Prozess laufen lassen, aber Sie werden mit ziemlicher Sicherheit möchten, dass der Passagier bei Bedarf andere Instanzen der App startet. Dieser Thread In der RUFUS Scheduler erwähnt Google Group mithilfe von Sperrdateien, um zu verhindern, dass mehr als ein Prozess den Scheduler startet, dies für Sie nützlich sein kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top