I am new to multiprocessing and have hit an issue I'm unable to solve. I have a list of dictionaries that looks similar to this (with many more dictionaries), that have duplicate 'device_name' key, value pairs (i.e. - 'device_name': 'name1'):
DEVICE_LIST = [{'device_name': 'name1', 'config': '!\nint Gi1/0/10\n des TEST INT DESC\n!', 'job_id': 1, 'hostname': 'name1.device.com', 'ip': '1.1.1.1', 'ping_result': 'UP'}, {'device_name': 'name2', 'config': '!\nint Gi1/0/10\n des TEST INT DESC\n!', 'job_id': 1, 'hostname': 'name2.device.com', 'ip': '2.2.2.2', 'ping_result': 'UP'}, {'device_name': 'name1', 'config': '!\nint Gi1/0/11\n des TEST INT DESC\n!', 'job_id': 1, 'hostname': 'name1.device.com', 'ip': '1.1.1.1', 'ping_result': 'UP'}]
I am sending the dictionaries to a function that logs into the device and executes configuration changes and captures data related to that transaction. Currently I'm sending the list to the function using pool.map like this:
import multiprocessing.dummy as mp
# Set pool size
pool = mp.Pool(10)
# Send the device list to the function using
CONFIG_RESULTS = pool.map(config_function, DEVICE_LIST)
What I would like to accomplish is if the key, value pair 'device_name': 'name1' is already being processed do not process any other instance of 'device_name': 'name1' until the first one has finished, as I don't want two configuration activities happening on the same device at the same time. Any thoughts?
source https://stackoverflow.com/questions/73326510/multiprocessing-list-of-dictionaries-dont-process-duplicate-key-value-pairs-at
Comments
Post a Comment