Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

tuer un processus popen au bout de x secondes

3 réponses
Avatar
chris
Bonjour,

## J'ai une fonction ( note : je debute en python )
qui me permet de recuperer des requetes sql facilement
sans l'installation de driver base de données quelconque
-- Extrait --
cmd = 'sqlplus ....'
handle = os.popen(cmd, 'r', 1)
r=[]
for line in handle:
r.append(line)

handle.close()
os.remove(t_name)
return r

comment puis je faire pour killer ce processus si jamais il se plante
exemple : pas le bon user ou requete incorrecte

L'ideal serait de dire si pas de reponse apres x secondes alors je kill
cela s'exprime comment en python ?

Merci pour vos remarques idées ...

A+
chris

3 réponses

Avatar
Rakotomandimby (R12y) Mihamina
chris wrote:

Bonjour,


Bonjour,

comment puis je faire pour killer ce processus si jamais il se plante
exemple : pas le bon user ou requete incorrecte


La commande est censée lever une exception ou retourner un code d'erreur
specifique en cas de timeout?
Je pense que c'est mieux de tabler la dessus...

Avatar
Amaury Forgeot d'Arc
Bonjour,


Bonjour,


## J'ai une fonction ( note : je debute en python )
qui me permet de recuperer des requetes sql facilement
sans l'installation de driver base de données quelconque
-- Extrait --
cmd = 'sqlplus ....'
handle = os.popen(cmd, 'r', 1)
r=[]
for line in handle:
r.append(line)

handle.close()
os.remove(t_name)
return r

comment puis je faire pour killer ce processus si jamais il se plante
exemple : pas le bon user ou requete incorrecte

L'ideal serait de dire si pas de reponse apres x secondes alors je kill
cela s'exprime comment en python ?

Merci pour vos remarques idées ...



J'ai fait quelques tests (windows XP, python 2.4, Oracle 10.2)
et il me semble que le processus sqlplus se termine toujours, en tout
cas quand il est lancé par popen il ne se bloque pas pour attendre des
commandes.
A quel endroit as-tu rencontré des problèmes ?

Pour un contrôle parfait des sous-processus, regarde le module
subprocess, même s'il est un peu plus compliqué.

--
Amaury

Avatar
chris

J'ai fait quelques tests (windows XP, python 2.4, Oracle 10.2)
et il me semble que le processus sqlplus se termine toujours, en tout
cas quand il est lancé par popen il ne se bloque pas pour attendre des
commandes.
A quel endroit as-tu rencontré des problèmes ?



Dans certain cas d'erreurs de requêtes surtout, ou dans certain cas de
figures de syntaxes cafouillage entre les " et les '

j'ai fini par y réguler en écrivant un fichier temporaire et en
exécutantes sqlplus @fic_temp

mais c'est vrai que cela pourrait être éviter

Pour un contrôle parfait des sous-processus, regarde le module
subprocess, même s'il est un peu plus compliqué.


Merci
A+
chris