Délai d'expiration des appels de fonction
Lors de l'appel d'une fonction en Python pouvant interrompre indéfiniment l'exécution du script, il devient nécessaire d'établir un mécanisme pour l'empêcher. La solution réside dans la définition d'un seuil de délai d'attente après lequel le script interviendra et mettra fin à la fonction.
Utilisation du package Signal
Pour les systèmes basés sur UNIX, le package signal offre une solution robuste. Pour l'utiliser :
Voici un exemple illustratif :
import signal # Handler function def handler(signum, frame): print("Timeout reached!") raise Exception("Timeout exception") # Function that may stall indefinitely def loop_forever(): while True: print("Looping") # Pause execution for 1 second time.sleep(1) # Set timeout to 5 seconds signal.alarm(5) signal.signal(signal.SIGALRM, handler) try: loop_forever() except Exception as exc: print("Exception:", exc)
Si la fonction loop_forever() ne parvient pas à se terminer dans les 5 secondes, la fonction de gestionnaire le fera être invoqué, déclenchant l'exception de délai d'attente et mettant fin au processus.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!