Using threaded queriesΒΆ
This is an example of multiple threads doing simple fetches.
Note
This example uses concurrent.futures and expects you to be familiar with pysnow.Resource.get().
import concurrent.futures
import pysnow
def just_print(client, query):
# Run the query
response = client.get(query=query)
# Iterate over the result and print out `sys_id` and `state` of the matching records.
for record in response.all():
print(record['sys_id'], record['state'])
# Create client object
c = pysnow.Client(instance='myinstance', user='myusername', password='mypassword')
# list of simple items to query
queries = ({'api': '/table/incident', 'q': {'state': 1}}, {'api': '/table/incident', 'q': {'state': 3}})
# build taskqueue
with concurrent.futures.ThreadPoolExecutor(max_workers=4) as taskpool:
for query in queries:
connection = c.resource(api_path=query['api'])
taskpool.submit(just_print, connection, query['q'])