settings.py (1438B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\dynamicresources\client\ess\settings.py 2 import datetime 3 import locks 4 import threadutils 5 import uthread2 6 UNCACHED = object() 7 8 class EssSettings(object): 9 10 def __init__(self, service_manager): 11 self._service_manager = service_manager 12 self._is_version_checking = False 13 self._reserve_bank_pulse_interval = UNCACHED 14 15 @property 16 def reserve_bank_pulse_interval(self): 17 self._version_check(self._reserve_bank_pulse_interval) 18 return self._reserve_bank_pulse_interval 19 20 @locks.SingletonCall 21 def prime(self): 22 cache = self._service_manager.RemoteSvc('dynamicResourceCacheMgr') 23 data = cache.GetDynamicResourceSettings() 24 self._update_from_cache_data(data) 25 26 def _version_check(self, value): 27 if value is UNCACHED: 28 self.prime() 29 else: 30 self._perform_async_version_check() 31 32 @uthread2.debounce(leading=True, max_wait=10.0) 33 @threadutils.threaded 34 def _perform_async_version_check(self): 35 if self._is_version_checking: 36 return 37 self._is_version_checking = True 38 try: 39 self.prime() 40 finally: 41 self._is_version_checking = False 42 43 def _update_from_cache_data(self, data): 44 self._reserve_bank_pulse_interval = datetime.timedelta(seconds=data['reservePulseIntervalSeconds'])