Maison >développement back-end >Tutoriel Python >Comment gérer les délais d'attente des fonctions en Python ?
Gestion des délais d'attente des fonctions en Python
Lors de l'appel d'une fonction susceptible de bloquer, il devient crucial d'avoir un mécanisme en place pour gérer correctement de telles situations et empêcher le script de se bloquer indéfiniment. Une solution efficace à ce problème consiste à définir un délai d'attente pour l'appel de fonction.
Le module de signal Python fournit la fonctionnalité nécessaire pour enregistrer un gestionnaire de signal qui sera invoqué si la fonction dépasse le délai d'attente spécifié. Voici comment cela peut être implémenté :
import signal def handler(signum, frame): print("Timeout reached!") raise Exception("Function call timed out") def function_to_timeout(): print("Running function...") # Simulate a long-running task for i in range(10): time.sleep(1) # Register the signal handler signal.signal(signal.SIGALRM, handler) # Set a timeout of 5 seconds signal.alarm(5) try: # Call the function function_to_timeout() except Exception as exc: print(exc)
Lorsque function_to_timeout() est appelée, elle imprimera un message indiquant qu'elle est en cours d'exécution. Le signal.alarm(5) définit un délai d'attente de 5 secondes, après quoi la fonction de gestionnaire sera déclenchée. Dans le gestionnaire, une exception est levée pour mettre fin à l'appel de fonction.
Cette approche vous permet de définir un délai d'attente spécifique pour la fonction et de quitter le script en douceur au cas où la fonction prendrait plus de temps que le temps spécifié.
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!