<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Gibt es eine Möglichkeit, den Aufruf von RunProgram() zu beenden?Ich habe ein JSL-Skript, das RunProgram verwendet, um eine Datenabfrage durchzuführen.Manchmal kann die Datenabfrage an etwas auf der Serverseite hängen bleiben (normalerweise, wenn ich versehentlich eine zu große Abfrage mache).Ich möchte einen Timer implementieren, der das RunProgram beendet, wenn es zu lange läuft.Irgendwelche Gedanken?
Unter Windows funktioniert dies, um ein 500-Sekunden-Programm nach nur 10 Sekunden zu beenden:
RP = Programm ausführen (
Ausführbar(
"PING.EXE"
),
Optionen( {"-n 500", "localhost"} ),
Lesefunktion (
Funktion( {dies},
Schreiben (dies << lesen)
)
)
);
x = Zeitplan(10, RP=0 
Auf MAC JMP 11 funktioniert etwas Ähnliches.MAC JMP 12 RunProgram unterbricht die Verbindung nicht korrekt, aber das wird für eine zukünftige Version behoben.
Die RP-Variable ist ein Handle für das Run-Program-Objekt.Wenn Sie das letzte Handle für das Objekt zerstören, indem Sie die RP-Variable auf einen anderen Wert setzen, schließt das Run-Program-Objekt die stdin/stdout-Handles für das externe Programm.Sie erhalten eine Protokollnachricht darüber.
Es gibt keine Möglichkeit, dies zu tun, wenn Sie readfunction("text") verwenden.
Der Datenbankserver sollte dies wie jede andere unterbrochene Verbindung sehen und Ressourcen entsprechend freigeben.