database saving without task.cancel

This commit is contained in:
CHIBOUB Chakib 2024-09-15 15:58:29 +02:00
parent 03819f7165
commit 2bb71affdc

View File

@ -9,8 +9,6 @@ from asgiref.sync import sync_to_async
from .models import Tournoi from .models import Tournoi
class Game: class Game:
# Global variable to handle the using of the database
#USING_DB = False
def __init__(self, game_id, player1, player2, localgame): def __init__(self, game_id, player1, player2, localgame):
self.game_id = game_id self.game_id = game_id
@ -220,8 +218,8 @@ class Game:
async def end_game(self, disconnected_player=None): async def end_game(self, disconnected_player=None):
if not self.ended: if not self.ended:
self.ended = True self.ended = True
if self.game_loop_task: #if self.game_loop_task:
self.game_loop_task.cancel() # self.game_loop_task.cancel()
print(f"- Game #{self.game_id} ENDED --- ({self})") print(f"- Game #{self.game_id} ENDED --- ({self})")
end_time = datetime.now() end_time = datetime.now()
@ -249,36 +247,33 @@ class Game:
if not self.localgame: if not self.localgame:
await self.player2.send(end_message) await self.player2.send(end_message)
#while (Game.USING_DB):
# await asyncio.sleep(1)
#Game.USING_DB = True
if hasattr(self, 'tournament'): if hasattr(self, 'tournament'):
print(f"*** Game #{self.game_id} from tournament: {self.tournament.tournoi_reg.name} ENDED ***") print(f"*** Game #{self.game_id} from tournament: {self.tournament.tournoi_reg.name} ENDED ***")
# Create the async task # Create the async task
self.database_task = asyncio.create_task( '''self.database_task = asyncio.create_task(
sync_to_async(handle_game_data)( sync_to_async(handle_game_data)(
self.game_state['player1_name'], self.game_state['player2_name'], self.game_state['player1_name'], self.game_state['player2_name'],
self.game_state['player1_score'], self.game_state['player2_score'], self.game_state['player1_score'], self.game_state['player2_score'],
self.bt1, self.bt2, duration, True, self.tournament.tournoi_reg self.bt1, self.bt2, duration, True, self.tournament.tournoi_reg
) )
) )'''
# Optionally wait for the task to complete if necessary
#await self.database
'''await sync_to_async(handle_game_data)(self.game_state['player1_name'], self.game_state['player2_name'], await sync_to_async(handle_game_data)(self.game_state['player1_name'], self.game_state['player2_name'],
self.game_state['player1_score'], self.game_state['player2_score'], self.game_state['player1_score'], self.game_state['player2_score'],
self.bt1, self.bt2, duration, True, self.tournament.tournoi_reg)''' self.bt1, self.bt2, duration, True, self.tournament.tournoi_reg)
print(f"*** Game #{self.game_id} from tournament: {self.tournament.tournoi_reg.name} is REGISTERED ***") print(f"*** Game #{self.game_id} from tournament: {self.tournament.tournoi_reg.name} is REGISTERED ***")
else: else:
self.database_task = asyncio.create_task(
# Create the async task
'''self.database_task = asyncio.create_task(
sync_to_async(handle_game_data)( sync_to_async(handle_game_data)(
self.game_state['player1_name'], self.game_state['player2_name'], self.game_state['player1_name'], self.game_state['player2_name'],
self.game_state['player1_score'], self.game_state['player2_score'], self.game_state['player1_score'], self.game_state['player2_score'],
self.bt1, self.bt2, duration, False, None self.bt1, self.bt2, duration, False, None
) )
) )'''
'''await sync_to_async(handle_game_data)(self.game_state['player1_name'], self.game_state['player2_name'],
await sync_to_async(handle_game_data)(self.game_state['player1_name'], self.game_state['player2_name'],
self.game_state['player1_score'], self.game_state['player2_score'], self.game_state['player1_score'], self.game_state['player2_score'],
self.bt1, self.bt2, duration, False, None)''' self.bt1, self.bt2, duration, False, None)
#Game.USING_DB = False