python重试装饰器示例

Jun 06, 2016 am 11:29 AM
Penghias

利用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()

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimanakah penghias dan pengurus konteks berfungsi dalam Python? Bagaimanakah penghias dan pengurus konteks berfungsi dalam Python? Oct 20, 2023 pm 07:04 PM

Bagaimanakah penghias dan pengurus konteks berfungsi dalam Python? Dalam Python, penghias dan pengurus konteks ialah dua konsep dan ciri yang sangat berguna. Kesemuanya direka untuk memudahkan kod, meningkatkan kebolehbacaan kod dan memudahkan penggunaan semula kod. 1. Penghias Penghias ialah fungsi khas dalam Python yang digunakan untuk mengubah suai kelakuan sesuatu fungsi. Ia membolehkan kami membungkus atau melanjutkan fungsi asal tanpa mengubah suainya. Penghias digunakan secara meluas dalam banyak rangka kerja dan perpustakaan Python, seperti Flask, Dj

Ajar anda langkah demi langkah cara menggunakan penghias untuk memanjangkan pemasa Python Ajar anda langkah demi langkah cara menggunakan penghias untuk memanjangkan pemasa Python Apr 13, 2023 pm 08:46 PM

Ini adalah artikel ketiga kami untuk mengajar anda langkah demi langkah cara melaksanakan pemasa Python. Dua artikel pertama: mengajar anda langkah demi langkah cara melaksanakan pemasa Python, dan menggunakan pengurus konteks untuk melanjutkan pemasa Python, menjadikan kelas Pemasa kami mudah digunakan, cantik dan praktikal. Tetapi kami tidak berpuas hati dengan ini, masih terdapat kes penggunaan yang boleh memudahkannya lagi. Katakan kita perlu menjejaki masa yang dibelanjakan dalam fungsi tertentu dalam pangkalan kod kita. Dengan pengurus konteks, anda pada asasnya mempunyai dua pilihan berbeza: 1. Gunakan Pemasa setiap kali anda memanggil fungsi: dengan Pemasa("some_name"): do_something() Apabila kita berada dalam

Menyahpepijat isu kebocoran memori Pytorch menggunakan penghias konteks Menyahpepijat isu kebocoran memori Pytorch menggunakan penghias konteks Apr 10, 2023 am 11:31 AM

Penghias ialah pelaksanaan khusus pengurus konteks python. Artikel ini akan menggambarkan cara menggunakannya melalui contoh penyahpepijatan GPU pytorch. Walaupun ia mungkin tidak berfungsi dalam setiap keadaan, saya dapati ia sangat berguna. Menyahpepijat Isu Kebocoran Memori Terdapat banyak cara untuk menyahpepijat kebocoran memori. Artikel ini akan menunjukkan kaedah yang berguna untuk mengenal pasti baris bermasalah dalam kod anda. Kaedah ini boleh membantu mencari lokasi tertentu dengan cara yang ringkas. Penyahpepijatan manual baris demi baris Jika anda menghadapi masalah, kaedah klasik dan biasa digunakan ialah menggunakan penyahpepijat untuk menyemak baris demi baris, seperti contoh berikut: Cari coretan kod tentang cara mengira jumlah bilangan semua tensor dalam pytorch dalam enjin carian, seperti: tensor -counter-s

Fahami penghias Python dalam satu artikel Fahami penghias Python dalam satu artikel Apr 12, 2023 pm 09:40 PM

Python ialah bahasa yang mesra pemula. Walau bagaimanapun, ia juga mempunyai banyak ciri canggih yang sukar dikuasai, seperti penghias. Ramai pemula tidak pernah memahami penghias dan cara mereka bekerja Dalam artikel ini, kami akan memperkenalkan selok-belok penghias. Dalam Python, fungsi ialah struktur yang sangat fleksibel yang boleh diberikan kepada pembolehubah, diluluskan sebagai parameter kepada fungsi lain, atau digunakan sebagai output fungsi. Penghias pada asasnya ialah fungsi yang membenarkan fungsi lain menambah beberapa fungsi tanpa pengubahsuaian. Ini adalah maksud "hiasan". "hiasan" ini sendiri mewakili fungsi Jika anda menggunakannya untuk mengubah suai fungsi yang berbeza, ia akan menambah fungsi ini.

Pengaturcaraan Python: Memahami semula fungsi berkaitan penghias Pengaturcaraan Python: Memahami semula fungsi berkaitan penghias May 27, 2023 pm 03:57 PM

Penghias adalah alat yang sangat berguna dalam Python. Penghias ialah fungsi yang mengambil fungsi lain sebagai parameter dan memanjangkan fungsinya tanpa mengubah suai secara eksplisit. Ia membolehkan kami mengubah suai tingkah laku fungsi atau kelas tanpa menyentuh kod sumbernya. Dalam erti kata lain, penghias membungkus fungsi untuk memanjangkan tingkah lakunya dan bukannya mengubah suainya secara kekal. Bermula daripada artikel ini, mari kita kaji apa itu penghias dan cara mereka berfungsi dalam Python. 1.1 Mengenai fungsi Untuk memahami cara penghias berfungsi, kita perlu menyemak beberapa konsep penting tentang fungsi dalam Python. Sentiasa sedar bahawa dalam Python, fungsi (fungsi) adalah warga kelas pertama, jadi konsep berikut harus diingat: ü fungsi

Masalah dan penyelesaian biasa untuk penghias dalam Python Masalah dan penyelesaian biasa untuk penghias dalam Python Oct 10, 2023 am 11:58 AM

Soalan Lazim dan Penyelesaian tentang Penghias dalam Python Apakah penghias ialah ciri yang sangat berkuasa dalam Python yang boleh digunakan untuk mengubah suai kelakuan fungsi atau kelas sedia ada tanpa mengubah kod sumbernya. Penghias sebenarnya adalah fungsi atau kelas yang menerima fungsi atau kelas sebagai parameter dan mengembalikan fungsi atau kelas baharu. Bagaimana untuk menulis penghias ringkas? Berikut ialah contoh penghias mudah: defdecorator(func):definner_func

Pengaturcaraan Python: Bagaimana untuk melaksanakan penghias kelas dan aplikasi? Perkara utama untuk difahami Pengaturcaraan Python: Bagaimana untuk melaksanakan penghias kelas dan aplikasi? Perkara utama untuk difahami Apr 12, 2023 pm 05:25 PM

Contoh Penghias dalam Python boleh sama ada fungsi atau kelas. Dalam bahagian sebelumnya, kami menggunakan penghias fungsi. Sekarang, kita akan belajar bagaimana untuk menentukan penghias kelas. Kami akan menentukan kelas tersuai yang bertindak sebagai penghias. Apabila fungsi dihiasi/diubah suai dengan kelas, fungsi itu menjadi contoh kelas itu. Mari ketahui: Seperti yang ditunjukkan di atas, kami mencipta penghias kelas yang ringkas. Untuk mana-mana kelas menjadi penghias, ia perlu melaksanakan kaedah __call__(). Kaedah __call__() berfungsi sama seperti fungsi pembungkus dalam penghias fungsi. Sekarang mari kita gunakan kelas ini untuk menghiasi fungsi: Output menjalankan program adalah seperti berikut: Penghias kelas dengan parameter *args dan **kwargs Untuk membenarkan penghias kelas menggunakan parameter, gunakan

Memahami dan menggunakan penghias Python Memahami dan menggunakan penghias Python May 08, 2023 am 08:10 AM

Penghias ialah sintaks Python lanjutan. Fungsi, kaedah atau kelas boleh diproses. Dalam Python, kami mempunyai pelbagai kaedah untuk memproses fungsi dan kelas Berbanding dengan kaedah lain, penghias mempunyai sintaks yang mudah dan kebolehbacaan kod yang tinggi. Oleh itu, penghias digunakan secara meluas dalam projek Python. Penghias sering digunakan dalam senario dengan keperluan pemotongan silang Contoh klasik termasuk log sisipan, ujian prestasi, pemprosesan transaksi, pengesahan kebenaran Web, Cache, dll. Kelebihan penghias ialah mereka boleh mengekstrak kod yang sama dalam sejumlah besar fungsi yang tiada kaitan dengan fungsi itu sendiri dan terus menggunakannya semula. Iaitu, fungsi boleh "diubah suai" menjadi tingkah laku yang sama sekali berbeza, dan logik perniagaan boleh diuraikan secara ortogon dengan berkesan. Secara umumnya, hiasan

See all articles