in ees_microsoft_teams/base_command.py [0:0]
def create_and_execute_jobs(self, thread_count, func, args, iterable_list):
"""Creates a thread pool of given number of thread count
:param thread_count: Total number of threads to be spawned
:param func: The target function on which the async calls would be made
:param args: Arguments for the targeted function
:param iterable_list: List to iterate over and create thread
"""
callables = []
if iterable_list:
for list_element in iterable_list:
callables.append(functools.partial(func, *args, list_element))
else:
callables.append(func)
documents = []
with ThreadPoolExecutor(max_workers=thread_count) as executor:
future_to_path = {
executor.submit(list_element): list_element
for list_element in callables
}
for future in as_completed(future_to_path):
try:
if future.result():
documents.extend(future.result())
except Exception as exception:
self.logger.exception(
f"Error while fetching the data from Microsoft Teams. Error {exception}"
)
return documents