chaind/chaind/adapters/base.py

29 lines
971 B
Python

# external imports
from chainqueue import Store as QueueStore
# local imports
from chaind.error import BackendIntegrityError
class ChaindAdapter:
race_delay = 0.1
def __init__(self, chain_spec, state_store, index_store, counter_store, cache_adapter, dispatcher, cache=None, pending_retry_threshold=0, error_retry_threshold=0):
self.cache_adapter = cache_adapter
self.dispatcher = dispatcher
err = None
for i in range(3):
try:
self.store = QueueStore(chain_spec, state_store, index_store, counter_store, cache=cache)
err = None
break
except FileNotFoundError as e:
logg.debug('queuestore instantiation failed, possible race condition (will try again): {}'.format(tx_hash, e))
err = e
time.sleep(self.race_delay)
continue
if err != None:
raise BackendIntegrityError(err)