aiogram как работать с пользователями по очереди?
Я использую библиотеку aiogram, чтобы написать телеграм бота казино. Возникла проблема: Если два игрока одновременно играют, то есть запускают функцию game, то может произойти такое, что один пользователь вторгнется в игру другого, и данные одного пользователя запишутся другому(кол-во игровой валюты, статистика, и т. д.). Вопрос: Почему так происходит? И можно ли как-то сделать так, чтобы каждый пользователь стоял в очереди на выполнение этой функции? Или же можно как-то по-другому решить эту проблему?
@dp.message_handler(state = GameChoose.Q2)
async def game(message: types.Message, state: FSMContext):
global money, stats, currency
userid = message.from_user.id
money, stats[0], stats[1], currency = load(userid)
msg = message.text
data = await state.get_data()
gametype = data.get('gametype')
if msg == '/leave':
await message.reply('Ты вышел из игры.')
await state.finish()
elif gametype == 'classic':
try:
if money >= int(msg.split()[0]) and (int(msg.split()[1]) >= 2 and int(msg.split()[1]) <= 20):
money -= int(msg.split()[0])
result = await play(userid, int(msg.split()[0]), int(msg.split()[1]))
money += result[0]
save(userid, money, stats[0], stats[1], currency)
await message.reply(result[1] + f'Твой баланс: {money} {currency}.')
exchg_rate_chg()
else:
await message.reply(f'''Недостаточно {currency} или недопустимая ставка
Для помощи введи !help или /help.''')