Session with auto-retry

You might run into issues if you’re creating too many requests against the ServiceNow API. Fortunately, the requests library enables users to create their own transport adapter with a retry mechanism from the urllib3 library.

You can read more about transport adapters and the retry mechanism here:

This example shows how to automatically retry on an error for about 2 seconds and then fall back to the default error handling.

import requests
import pysnow

from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retry

s = requests.Session()
s.auth = requests.auth.HTTPBasicAuth('<username>', '<password>')

# set auto retry for about 2 seconds on some common errors
adapter = HTTPAdapter(
    max_retries=Retry(
        total=3,
        backoff_factor=0.3,
        status_forcelist=(401, 408, 429, 431, 500, 502, 503, 504, 511)
    )
)

s.mount('https://', adapter)

sn = pysnow.Client(instance='<instance>', session=s)