Ich habe einen Server (Sinatra), den ich verwenden möchte, um ein geplantes Ruby-Skript auszuführen und zu überwachen. Dieses Skript muss dem Server-Skript Statusaktualisierungen zurückgeben können, und der Server muss dieses untergeordnete Skript mit Argumenten ausführen können.Server mit anderen Ruby-Skripten
Abgesehen von der vollständigen Implementierung des Codes aus dem untergeordneten Skript in das Server-Skript, wäre die einzige Möglichkeit, dies zu tun, die Verwendung globaler Variablen. Aber ich bin besorgt, da dies sehr unordentlich werden könnte, wenn ich diese Art von Setup über mehrere Server-Skripte mache, und ich weiß, dass globale Variablen verpönt sind.
Was ist der beste Weg, um mit dieser Situation umzugehen? Ich habe nicht wirklich Module verwendet, aber ich sehe nicht, wie ich Module verwenden konnte, wenn ich das Kind brauche, um Updates zurück zum Elternteil zu schicken.
Vielen Dank für den Link. Also sagst du, dass es am besten ist, den Code von meinem anderen Skript direkt in das Server-Skript zu implementieren? Gibt es keine Möglichkeit, den Code in mehrere Dateien zu trennen und eine Möglichkeit zu haben, Werte aus dem Kindcode zurück an den Elterncode zu senden? – Max
Sie können immer von der Thread-Klasse in Ihre eigene Implementierung eine externe Datei mit dem Inhalt Ihres Skripts erben. Um einen Wert aus dem Thread zurückzugeben, wartest du auf den Thread mit 'my_thread.join' (siehe den letzten Link). –