Ich hätte gerne ein paar Gedanken darüber, ob die Verwendung von fork {} zu 'Hintergrund' ein Prozess aus einer Schiene App ist so eine gute Idee oder nicht ...mit Kernel # fork für Hintergrundprozesse, Profis? Nachteile?
Von was ich sammeln fork {my_method; Prozess # setsid tut tatsächlich, was es tun soll.
1) schafft eine andere Prozesse mit einer anderen PID
2) nicht unterbricht den aufrufenden Prozess (zB es weiter w/o für die Gabel warten, das Kind zu beenden)
3) ausführt, bis Es endet
.. was ist cool, aber ist es eine gute Idee? Was genau macht Gabel? Erzeugt es eine doppelte Instanz meiner gesamten rails mongrel/Passagierinstanz im Speicher? Wenn das so wäre, wäre das sehr schlecht. Oder macht es das irgendwie, ohne einen riesigen Speicher zu verbrauchen?
Mein Ziel war weg zugunsten mit meinem Hintergrund-Daemon/Queue-System zu tun, um diese Prozesse von Forking (vor allem E-Mails) - aber wenn dieser Speicher nicht speichern Sie dann wird es auf jeden Fall ein Schritt in der falschen Richtung
Ich würde mit dem Warteschlangensystem bleiben. Wenn Sie ein gut gepflegtes Paket dafür verwenden, müssen Sie sich keine Gedanken über Forkbombing-Exploits und die vielen anderen Details machen, die für ein gutes Warteschlangensystem benötigt werden. Dies ist ein Fall, in dem Sie darauf achten sollten, Ihren eigenen Code zu rollen, es sei denn, dies ist eindeutig erforderlich. –
Warteschlangenserver ++. Vielleicht möchten Sie MQ (http://github.com/mdarby/mq) für E-Mail-Warteschlangen überprüfen. Ich habe es monatelang ohne Probleme in der Produktion verwendet. –