Код: Выделить всё
futures = []
with ThreadPoolExecutor(max_workers=10) as executor:
for device in selected:
futures.append(executor.submit(self.backup_single_firewall, device))
for f in as_completed(futures):
f.result()
...
def backup_single_firewall(self, device):
try:
...
self.logger.info(f"Config saved to: {path}")
except Exception as e:
self.logger.failure(f"[Thread error] {device.name}: {e}")
Подробнее здесь: https://stackoverflow.com/questions/798 ... -in-job-ui
Мобильная версия