<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />C'è un modo per uccidere la chiamata RunProgram()?Ho uno script JSL che utilizza RunProgram per eseguire una query di dati.A volte la query di dati può rimanere bloccata su qualcosa sul lato server (di solito se erroneamente faccio una query troppo grande).Vorrei implementare un timer che ucciderà RunProgram se è in esecuzione da troppo tempo.qualche idea?
Su Windows, questo funziona per terminare un programma di 500 secondi dopo soli 10 secondi:
RP = Esegui programma (
eseguibile(
"PING.EXE"
),
Opzioni( {"-n 500", "localhost"} ),
Funzione di lettura(
Funzione( {questo},
Scrivi( questo << leggi )
)
)
);
x = programma(10, PR=0 
Su MAC JMP 11 qualcosa di simile funzionerà.MAC JMP 12 RunProgram non interrompe correttamente la connessione, ma è stato risolto per una versione futura.
La variabile RP è un handle per l'oggetto del programma di esecuzione.Quando si distrugge l'ultimo handle dell'oggetto impostando la variabile RP su un valore diverso, l'oggetto run program chiude gli handle stdin/stdout nel programma esterno.Riceverai un messaggio di registro a riguardo.
Non c'è modo di farlo se stai usando readfunction("text").
Il server di database dovrebbe vederlo come qualsiasi altra connessione interrotta e rilasciare le risorse in modo appropriato.