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
class Game:
# Global variable to handle the using of the database
#USING_DB = False
def __init__(self, game_id, player1, player2, localgame):
self.game_id = game_id
@ -220,8 +218,8 @@ class Game:
async def end_game(self, disconnected_player=None):
if not self.ended:
self.ended = True
if self.game_loop_task:
self.game_loop_task.cancel()
#if self.game_loop_task:
# self.game_loop_task.cancel()
print(f"- Game #{self.game_id} ENDED --- ({self})")
end_time = datetime.now()
@ -249,36 +247,33 @@ class Game:
if not self.localgame:
await self.player2.send(end_message)
#while (Game.USING_DB):
# await asyncio.sleep(1)
#Game.USING_DB = True
if hasattr(self, 'tournament'):
print(f"*** Game #{self.game_id} from tournament: {self.tournament.tournoi_reg.name} ENDED ***")
# Create the async task
self.database_task = asyncio.create_task(
'''self.database_task = asyncio.create_task(
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.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.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 ***")
else:
self.database_task = asyncio.create_task(
# Create the async task
'''self.database_task = asyncio.create_task(
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.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.bt1, self.bt2, duration, False, None)'''
#Game.USING_DB = False
self.bt1, self.bt2, duration, False, None)