The Collection Part 1 #try_exception

Bagaimana cara menangani event exception pada saat kita melakukan request ke webservice ?

ada kalanya kita memerlukan sebuah function yang bisa melakukan reload ulang pada sebuah event yang kita buat jika event tersebut mengalami mal function. cara yang paling sederhana kita bisa menggunakan try exception, seperti sample di bawah ini :

class NetworkError(RuntimeError):
    pass
 
def retryer(max_retries=10, timeout=5):
    def wraps(func):
        request_exceptions = (
            requests.exceptions.Timeout,
            requests.exceptions.ConnectionError,
            requests.exceptions.HTTPError,
            requests.exceptions.SSLError,
        )
 
    def inner(*args, **kwargs):
        for i in range(max_retries):
            try:
                result = func(*args, **kwargs)
            except request_exceptions:
                time.sleep(timeout)
                continue
            else:
                return result
            else:
                raise NetworkError
        return inner
    return wraps
 
@retryer(max_retries=7, timeout=1)
def foo():
    print('Stuff')
    requests.get('https://www.google.com')

sumber : stack overflow

good lucks

mm

Alfin F

Technopreneur , Developer, Advisor

More Posts

Follow Me:
TwitterLinkedIn