Skip to main content

A simple util library for creating applications which needs to keep running, despite abnormalities

Project description

Build Status About

A simple util library for creating applications which needs to keep running, despite abnormalities

Installing

pip install pyrobustness

Usage

Timeout example:

from robust.tools import timeout


@timeout(5)
def very_long_job():
    import time
    while True:
      print("Zzz")
      time.sleep(1)

very_long_job()

Retry example:

from robust.tools import retry

@retry(5)
def very_broken_method():
    print(".")
    raise RuntimeError("Something is broken...")

while True:
    very_broken_method()

Circuit Breaker example:

import time
from robust.tools import breaker

counter = 0

@breaker(limit=5, revive=5)
def very_broken_method():
    nonlocal counter
    if counter <= 5:
        counter += 1
    	raise RuntimeError("Something is broken...")
    else:
        print("We've made it!")


while True:
    try:
    	very_broken_method()
    except RuntimeError:
        pass
    except Exception:
        break

time.sleep(5)
very_broken_method()

Version History

  • 1.1:
    • Additional type for alarm - threading to support Windows OS, or certain cases when signal is not working as supposed
    • CircuitBreaker pattern, inspired by speech by Daniel Riti @Pycon 2016
  • 1.0: Initial version

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pyrobustness, version 1.1.2
Filename, size File type Python version Upload date Hashes
Filename, size pyrobustness-1.1.2-py3-none-any.whl (5.4 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size pyrobustness-1.1.2.tar.gz (3.5 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page