Wie stellen Sie sicher nur eine Rake Aufgabe zu einem Zeitpunkt ausgeführt wird?
-
02-10-2019 - |
Frage
Ich möchte Setup Rake Aufgaben über cron ausgeführt werden. Das ist leicht, aber was ist nicht leicht, ist sicherzustellen, dass nur eine Kopie dieser Rake Aufgabe zu einem Zeitpunkt ausgeführt wird. Ich stelle mir vor ich ps auf dem System verwenden könnte zu überprüfen und dann die Rake Aufgabe zu beenden, wenn es bereits ausgeführt wird, oder ich könnte eine verzögerte Auftragsstruktur tun, wo ich den Namen der Aufgabe serialisiert und nach Beendigung ich es bilden die DB entfernen, aber was empfehlen Sie alle?
Lösung
Unix löste dieses Problem mit pid-Dateien. Pid-Dateien werden in / var / run befindet und enthalten die Programme Id verarbeiten. Hier ist der Mann Seite: http://fuse4bsd.creo.hu/ localcgi / Mann-cgi.cgi? pidfile + 3
Sie finden es vielleicht ein bisschen altmodisch (und ich stimme), aber es ist eine häufig verwendete und bewährte Methode.
Andere Tipps
Sie können mit https://rubygems.org/gems/only_one_rake , wie Namensraum: Schienen tun desc „Online-Benutzeranzahl“ only_one_task: online_user_count =>: Umwelt tun loop {OnlineUser.count; Schlaf 1} Ende Ende