Maison développement back-end Tutoriel Python python重试装饰器示例

python重试装饰器示例

Jun 06, 2016 am 11:29 AM
装饰器

利用python 写一些网络服务的时候,当网络状况不好,或者资源占用过多,任务拥塞的情况下,总会抛出一些异常,当前任务就被终止了,可以很好的利用@装饰器,写一个重试的装饰器,这样比较python!
执行结果:

代码如下:


WARNING:root:timed out, Retrying in 3 seconds...
WARNING:root:timed out, Retrying in 6 seconds...
WARNING:root:timed out, Retrying in 12 seconds...

代码如下:


#!/usr/bin/env python
# -*- coding: utf-8 -*-
#  tanyewei@gmail.com
#  2014/01/27 10:36
import time
import logging
import socket
from functools import wraps

logging.basicConfig(level=logging.DEBUG)

def retry(MyException, tries=4, delay=3, backoff=2, logger=None):
    def deco_retry(f):
        @wraps(f)
        def f_retry(*args, **kwargs):
            mtries, mdelay = tries, delay
            while mtries > 1:
                try:
                    return f(*args, **kwargs)
                except MyException as ex:
                    msg = "%s, Retrying in %d seconds..." % (str(ex), mdelay)
                    if logger:
                        logger.warning(msg)
                    else:
                        print msg
                    time.sleep(mdelay)
                    mtries -= 1
                    mdelay *= backoff
            return str(ex)

        return f_retry

    return deco_retry

@retry(Exception, logger=logging)
def check():
    sk = socket.socket()
    sk.settimeout(5)
    sk.connect(('6.6.6.6', 80))

if __name__ == "__main__":
    check()

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment fonctionnent les décorateurs et les gestionnaires de contexte en Python ? Comment fonctionnent les décorateurs et les gestionnaires de contexte en Python ? Oct 20, 2023 pm 07:04 PM

Comment fonctionnent les décorateurs et les gestionnaires de contexte en Python ? En Python, les décorateurs et les gestionnaires de contexte sont deux concepts et fonctionnalités très utiles. Ils sont tous conçus pour simplifier le code, augmenter la lisibilité du code et faciliter la réutilisation du code. 1. Décorateur Un décorateur est une fonction spéciale en Python utilisée pour modifier le comportement d'une fonction. Cela nous permet d'envelopper ou d'étendre la fonction d'origine sans la modifier. Les décorateurs sont largement utilisés dans de nombreux frameworks et bibliothèques Python, tels que Flask, Dj

Apprenez étape par étape à utiliser les décorateurs pour étendre les minuteries Python. Apprenez étape par étape à utiliser les décorateurs pour étendre les minuteries Python. Apr 13, 2023 pm 08:46 PM

Ceci est notre troisième article pour vous apprendre étape par étape comment implémenter un timer Python. Les deux premiers articles : vous apprennent étape par étape comment implémenter un timer Python et utiliser des gestionnaires de contexte pour étendre les timers Python, rendant notre classe Timer pratique à utiliser, belle et pratique. Mais cela ne nous satisfait pas, il existe encore un cas d’usage qui peut encore le simplifier. Supposons que nous devions suivre le temps passé dans une fonction donnée dans notre base de code. Avec un gestionnaire de contexte, vous avez essentiellement deux options différentes : 1. Utiliser ​Timer chaque fois que vous appelez une fonction : with Timer("some_name") : do_something() Quand nous sommes dans

Débogage des problèmes de fuite de mémoire Pytorch à l'aide de décorateurs de contexte Débogage des problèmes de fuite de mémoire Pytorch à l'aide de décorateurs de contexte Apr 10, 2023 am 11:31 AM

Les décorateurs sont des implémentations spécifiques des gestionnaires de contexte Python. Cet article illustrera comment les utiliser à travers un exemple de débogage GPU pytorch. Même si cela ne fonctionne pas dans toutes les situations, je les ai trouvés très utiles. Débogage des problèmes de fuite de mémoire Il existe de nombreuses façons de déboguer les fuites de mémoire. Cet article présentera une méthode utile pour identifier les lignes problématiques dans votre code. Cette méthode peut aider à trouver l’emplacement spécifique de manière concise. Débogage manuel ligne par ligne Si vous rencontrez un problème, une méthode classique et couramment utilisée consiste à utiliser le débogueur pour inspecter ligne par ligne, comme dans l'exemple suivant : Rechercher des extraits de code sur la façon de calculer le nombre total de tous les tenseurs dans pytorch dans le moteur de recherche, tel que : tensor -counter-s

Comprendre les décorateurs Python en un seul article Comprendre les décorateurs Python en un seul article Apr 12, 2023 pm 09:40 PM

Python est un langage adapté aux débutants. Cependant, il possède également de nombreuses fonctionnalités avancées et difficiles à maîtriser, comme les décorateurs. De nombreux débutants n'ont jamais compris les décorateurs et leur fonctionnement. Dans cet article, nous présenterons les tenants et les aboutissants des décorateurs. En Python, une fonction est une structure très flexible qui peut être affectée à une variable, passée en paramètre à une autre fonction ou utilisée comme sortie d'une fonction. Un décorateur est essentiellement une fonction qui permet à d’autres fonctions d’ajouter des fonctionnalités sans modification. C'est le sens de "décoration". Cette "décoration" représente elle-même une fonction si elle est utilisée pour modifier différentes fonctions, c'est pour ajouter cette fonction à ces fonctions.

Programmation Python : Re-compréhension des fonctions du décorateur Programmation Python : Re-compréhension des fonctions du décorateur May 27, 2023 pm 03:57 PM

Les décorateurs sont des outils très utiles en Python. Un décorateur est une fonction qui prend une autre fonction comme paramètre et étend ses fonctionnalités sans la modifier explicitement. Il permet de modifier le comportement d'une fonction ou d'une classe sans toucher à son code source. En d’autres termes, un décorateur enveloppe une fonction pour étendre son comportement plutôt que de la modifier de manière permanente. À partir de cet article, étudions ce que sont les décorateurs et comment ils fonctionnent en Python. 1.1 À propos des fonctions Afin de comprendre le fonctionnement des décorateurs, nous devons revoir quelques concepts importants sur les fonctions en Python. Sachez toujours qu'en Python, les fonctions sont des citoyens de premier ordre, vous devez donc garder les concepts suivants à l'esprit : ü Fonction

Problèmes courants et solutions pour les décorateurs en Python Problèmes courants et solutions pour les décorateurs en Python Oct 10, 2023 am 11:58 AM

Questions fréquemment posées et solutions sur les décorateurs en Python Que sont les décorateurs ? Les décorateurs sont une fonctionnalité très puissante de Python qui peut être utilisée pour modifier le comportement des fonctions ou des classes existantes sans modifier leur code source. Un décorateur est en fait une fonction ou une classe qui accepte une fonction ou une classe comme paramètre et renvoie une nouvelle fonction ou classe. Comment écrire un décorateur simple ? Voici un exemple de décorateur simple : defdecorator(func):definner_func

Programmation Python : Comment implémenter des décorateurs de classes et des applications ? Points clés à retenir Programmation Python : Comment implémenter des décorateurs de classes et des applications ? Points clés à retenir Apr 12, 2023 pm 05:25 PM

Exemples de décorateurs en Python peuvent être des fonctions ou des classes. Dans les sections précédentes, nous avons utilisé des décorateurs de fonctions. Nous allons maintenant apprendre à définir les décorateurs de classe. Nous allons définir une classe personnalisée qui fait office de décorateur. Lorsqu'une fonction est décorée/modifiée avec une classe, la fonction devient une instance de cette classe. Découvrons-le : comme indiqué ci-dessus, nous avons créé un décorateur de classe simple. Pour qu’une classe devienne décoratrice, elle doit implémenter la méthode __call__(). La méthode __call__() fonctionne de la même manière qu’une fonction wrapper dans un décorateur de fonctions. Utilisons maintenant cette classe pour décorer une fonction : Le résultat de l'exécution du programme est le suivant : Décorateur de classe avec les paramètres *args et **kwargs Afin de permettre au décorateur de classe d'utiliser des paramètres, utilisez.

Comprendre et appliquer les décorateurs Python Comprendre et appliquer les décorateurs Python May 08, 2023 am 08:10 AM

Decorator est une syntaxe Python avancée. Une fonction, une méthode ou une classe peut être traitée. En Python, nous disposons de plusieurs méthodes pour traiter les fonctions et les classes. Par rapport à d'autres méthodes, les décorateurs ont une syntaxe simple et une lisibilité élevée du code. Par conséquent, les décorateurs sont largement utilisés dans les projets Python. Les décorateurs sont souvent utilisés dans des scénarios avec des exigences transversales. Les exemples classiques incluent les journaux d'insertion, les tests de performances, le traitement des transactions, la vérification des autorisations Web, le cache, etc. L’avantage des décorateurs est qu’ils peuvent extraire le même code dans un grand nombre de fonctions qui n’a rien à voir avec la fonction elle-même et continuer à le réutiliser. Autrement dit, les fonctions peuvent être « modifiées » en comportements complètement différents et la logique métier peut être efficacement décomposée orthogonalement. D'une manière générale, la décoration

See all articles