Skip to content

Commit e19605a

Browse files
committed
fix: use ThreadPoolExecutor instead of ThreadPool
1 parent 3f2a79c commit e19605a

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

src/DIRAC/ConfigurationSystem/private/ServiceInterface.py

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66

77
import time
88
import threading
9+
from concurrent.futures import ThreadPoolExecutor, as_completed
910
from DIRAC import gLogger, S_OK
1011

1112
from DIRAC.ConfigurationSystem.private.ServiceInterfaceBase import ServiceInterfaceBase
1213
from DIRAC.ConfigurationSystem.Client.ConfigurationData import gConfigurationData
13-
from DIRAC.Core.Utilities.ThreadPool import ThreadPool
1414

1515
__RCSID__ = "$Id$"
1616

@@ -41,19 +41,20 @@ def run(self):
4141

4242
def _updateServiceConfiguration(self, urlSet, fromMaster=False):
4343
"""
44-
Update configuration in a set of service in parallel
44+
Update configuration of a set of slave services in parallel
4545
4646
:param set urlSet: a set of service URLs
4747
:param fromMaster: flag to force updating from the master CS
4848
:return: Nothing
4949
"""
50-
pool = ThreadPool(len(urlSet))
51-
for url in urlSet:
52-
pool.generateJobAndQueueIt(
53-
self._forceServiceUpdate, args=[url, fromMaster], kwargs={}, oCallback=self.__processResults
54-
)
55-
pool.processAllResults()
56-
57-
def __processResults(self, _id, result):
58-
if not result["OK"]:
59-
gLogger.warn("Failed to update configuration on", result["URL"] + ":" + result["Message"])
50+
if not urlSet:
51+
return
52+
with ThreadPoolExecutor(max_workers=len(urlSet)) as executor:
53+
futureUpdate = {executor.submit(self._forceServiceUpdate, url, fromMaster): url for url in urlSet}
54+
for future in as_completed(futureUpdate):
55+
url = futureUpdate[future]
56+
result = future.result()
57+
if result["OK"]:
58+
gLogger.info("Successfully updated slave configuration", url)
59+
else:
60+
gLogger.error("Failed to update slave configuration", url)

0 commit comments

Comments
 (0)