Compare commits

...

4 Commits

Author SHA1 Message Date
lash
b63793fd9b Add purge to chainqueue store object 2022-05-02 20:21:51 +00:00
lash
84b8eb10e6 Remove spam logline 2022-05-01 07:40:32 +00:00
lash
532ff230b4 Remove race waits (defer to client layer) 2022-05-01 06:44:33 +00:00
lash
f7c09acfe2 Add race delay 2022-05-01 06:27:52 +00:00
6 changed files with 28 additions and 29 deletions

View File

@@ -1,3 +1,12 @@
- 0.1.6
* Sort upcoming queue item chronologically
* Add unit testing for upcoming query method
- 0.1.5
* Add reserved state check method
- 0.1.4
* Dependency cleanups
- 0.1.3
* Add CLI args and config handling, settings object
- 0.1.2
* Add CLI inspection tools
- 0.1.1

View File

@@ -24,12 +24,6 @@ class CacheIntegrityError(ChainQueueException):
pass
class BackendIntegrityError(ChainQueueException):
"""Raised when queue backend has invalid state
"""
pass
class DuplicateTxError(ChainQueueException):
"""Backend already knows transaction
"""

View File

@@ -2,14 +2,12 @@
import re
import datetime
import logging
import time
# local imports
from chainqueue.cache import CacheTx
from chainqueue.entry import QueueEntry
from chainqueue.error import (
NotLocalTxError,
BackendIntegrityError,
)
from chainqueue.error import NotLocalTxError
from chainqueue.enum import (
StatusBits,
all_errors,
@@ -49,19 +47,18 @@ class Store:
'unset',
'name',
'modified',
'purge',
]:
setattr(self, v, getattr(self.state_store, v))
sync_err = None
for i in range(2):
try:
self.state_store.sync()
except Exception as e:
sync_err = e
continue
try:
self.state_store.sync()
except Exception as e:
sync_err = e
if sync_err != None:
raise BackendIntegrityError(sync_err)
raise FileNotFoundError(sync_err)
def put(self, v, cache_adapter=CacheTx):
@@ -80,16 +77,15 @@ class Store:
def get(self, k):
v = None
for i in range(2):
s = self.index_store.get(k)
try:
self.state_store.sync()
v = self.state_store.get(s)
except FileNotFoundError:
continue
break
s = self.index_store.get(k)
err = None
try:
self.state_store.sync()
v = self.state_store.get(s)
except FileNotFoundError as e:
err = e
if v == None:
raise NotLocalTxError(k)
raise NotLocalTxError('could not find tx {}: {}'.format(k, err))
return (s, v,)

View File

@@ -64,7 +64,7 @@ class CounterStore:
v = f.read(8)
self.count = int.from_bytes(v, byteorder='big')
logg.info('counter starts at {}'.format(self.count))
logg.debug('counter starts at {}'.format(self.count))
f.seek(0)

View File

@@ -6,4 +6,4 @@ leveldir~=0.3.0
confini~=0.6.0
#pyxdg~=0.27
chainlib~=0.1.1
shep~=0.2.3
shep~=0.2.5

View File

@@ -1,6 +1,6 @@
[metadata]
name = chainqueue
version = 0.1.6
version = 0.1.9
description = Generic blockchain transaction queue control
author = Louis Holbrook
author_email = dev@holbrook.no