Fix DB && Logs to Stdout in Docker
All checks were successful
Build and push Docker image at git tag / build (push) Successful in 1m54s
All checks were successful
Build and push Docker image at git tag / build (push) Successful in 1m54s
This commit is contained in:
parent
afc35be35a
commit
e376956def
@ -29,6 +29,11 @@ autostart=true
|
|||||||
autorestart=true
|
autorestart=true
|
||||||
priority=10
|
priority=10
|
||||||
|
|
||||||
|
stderr_logfile=/dev/stderr
|
||||||
|
stderr_logfile_maxbytes=0
|
||||||
|
stdout_logfile=/dev/stdout
|
||||||
|
stdout_logfile_maxbytes=0
|
||||||
|
|
||||||
[program:nginx]
|
[program:nginx]
|
||||||
command=/usr/sbin/nginx -g 'daemon off;'
|
command=/usr/sbin/nginx -g 'daemon off;'
|
||||||
autostart=true
|
autostart=true
|
||||||
|
@ -64,14 +64,14 @@ class DB():
|
|||||||
check_same_thread=False
|
check_same_thread=False
|
||||||
)
|
)
|
||||||
self.db.row_factory = sqlite3.Row
|
self.db.row_factory = sqlite3.Row
|
||||||
|
|
||||||
self.dblock = Lock()
|
|
||||||
atexit.register(lambda db : db.close(), self.db)
|
atexit.register(lambda db : db.close(), self.db)
|
||||||
|
|
||||||
|
self.db_lock = Lock()
|
||||||
|
|
||||||
self._assure_tables()
|
self._assure_tables()
|
||||||
|
|
||||||
def _assure_tables(self):
|
def _assure_tables(self):
|
||||||
self.dblock.acquire()
|
self.db_lock.acquire()
|
||||||
with self.db:
|
with self.db:
|
||||||
self.db.execute("""CREATE TABLE IF NOT EXISTS Messages (
|
self.db.execute("""CREATE TABLE IF NOT EXISTS Messages (
|
||||||
count INTEGER PRIMARY KEY AUTOINCREMENT,
|
count INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
@ -82,11 +82,11 @@ class DB():
|
|||||||
json BLOB,
|
json BLOB,
|
||||||
processed BOOL DEFAULT FALSE
|
processed BOOL DEFAULT FALSE
|
||||||
)""")
|
)""")
|
||||||
self.dblock.release()
|
self.db_lock.release()
|
||||||
|
|
||||||
@validate_call
|
@validate_call
|
||||||
def add_message(self, sender:str, recipient:str, message:AgentMessage, processed:bool=False) -> int:
|
def add_message(self, sender:str, recipient:str, message:AgentMessage, processed:bool=False) -> int:
|
||||||
self.dblock.acquire()
|
self.db_lock.acquire()
|
||||||
with self.db:
|
with self.db:
|
||||||
self.db.execute(
|
self.db.execute(
|
||||||
"""INSERT INTO Messages (
|
"""INSERT INTO Messages (
|
||||||
@ -101,20 +101,21 @@ class DB():
|
|||||||
"processed" : processed
|
"processed" : processed
|
||||||
})
|
})
|
||||||
new_count = self.db.execute("SELECT LAST_INSERT_ROWID() as last").fetchone()
|
new_count = self.db.execute("SELECT LAST_INSERT_ROWID() as last").fetchone()
|
||||||
self.dblock.release()
|
self.db_lock.release()
|
||||||
|
|
||||||
return new_count['last']
|
return new_count['last']
|
||||||
|
|
||||||
@validate_call
|
@validate_call
|
||||||
def set_processed(self, count:int, processed:bool=True) -> bool:
|
def set_processed(self, count:int, processed:bool=True) -> bool:
|
||||||
self.dblock.acquire()
|
self.db_lock.acquire()
|
||||||
with self.db:
|
with self.db:
|
||||||
try:
|
try:
|
||||||
self.db.execute("UPDATE Messages SET processed = ? WHERE count = ?", (processed, count))
|
self.db.execute("UPDATE Messages SET processed = ? WHERE count = ?", (processed, count))
|
||||||
return True
|
return True
|
||||||
except:
|
except:
|
||||||
return False
|
return False
|
||||||
self.dblock.release()
|
finally:
|
||||||
|
self.db_lock.release()
|
||||||
|
|
||||||
def __iter__(self) -> Generator[RowObject, None, None]:
|
def __iter__(self) -> Generator[RowObject, None, None]:
|
||||||
yield from self.iterate()
|
yield from self.iterate()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user