Improved internal achievement checks #268_achievements
This commit is contained in:
@@ -11,6 +11,7 @@ class DBContext(DatabaseContext):
|
||||
self._logger = logger
|
||||
|
||||
DatabaseContext.__init__(self)
|
||||
self._fails = 0
|
||||
|
||||
def connect(self, database_settings: DatabaseSettings):
|
||||
try:
|
||||
@@ -32,7 +33,11 @@ class DBContext(DatabaseContext):
|
||||
try:
|
||||
return super(DBContext, self).select(statement)
|
||||
except Exception as e:
|
||||
if self._fails >= 3:
|
||||
self._logger.fatal(__name__, f"Database error caused by {statement}", e)
|
||||
|
||||
self._logger.error(__name__, f"Database error caused by {statement}", e)
|
||||
self._fails += 1
|
||||
try:
|
||||
time.sleep(0.5)
|
||||
return self.select(statement)
|
||||
|
@@ -4,7 +4,6 @@ from typing import Optional
|
||||
from cpl_core.database import TableABC
|
||||
|
||||
from bot_data.model.achievement import Achievement
|
||||
from bot_data.model.server import Server
|
||||
from bot_data.model.user import User
|
||||
|
||||
|
||||
@@ -13,7 +12,6 @@ class UserGotAchievement(TableABC):
|
||||
self,
|
||||
user: Optional[User],
|
||||
achievement: Optional[Achievement],
|
||||
server: Optional[Server],
|
||||
created_at: datetime = None,
|
||||
modified_at: datetime = None,
|
||||
id=0,
|
||||
@@ -21,7 +19,6 @@ class UserGotAchievement(TableABC):
|
||||
self._id = id
|
||||
self._user = user
|
||||
self._achievement = achievement
|
||||
self._server = server
|
||||
|
||||
TableABC.__init__(self)
|
||||
self._created_at = created_at if created_at is not None else self._created_at
|
||||
|
@@ -41,8 +41,8 @@ class AchievementRepositoryService(AchievementRepositoryABC):
|
||||
return UserGotAchievement(
|
||||
self._users.get_user_by_id(result[1]),
|
||||
self.get_achievement_by_id(result[2]),
|
||||
self._servers.get_server_by_id(result[3]),
|
||||
result[5],
|
||||
result[3],
|
||||
result[4],
|
||||
id=result[0],
|
||||
)
|
||||
|
||||
|
Reference in New Issue
Block a user