Не правильно работает регулярная отправка в Телеграм боте

Параллельно с обычными командами в боте, делаю отправку информации каждому пользователю в нужное ему время.

Проблема: словарь с данными пользователя в функции threading_control() корректен, а во вложенной функции regular_sending - нет, хотя при этом, данные не меняются. То есть при самой отправке, по какой-то причине, данные в словаре от другого пользователя, соответственно - отправка идёт не тому человеку не в его время.

Надеюсь, вы сможете мне помочь, заранее благодарен каждому! Код:

def get_user_params(user):
    """Возвращает словарь с данными о пользователе"""
    params = {'id': user[0],
              'name': user[1],
              'send_time': user[2],
              'city': user[3],
              'news_topic': user[4],
              'quantity_news': user[5],
              'status': user[6]
              }
    return params


@aiocron.crontab('* * * * *')
async def threading_control():
    # Получаем список кортежей со всеми пользователями
    all_users = db.get_all_users_info()

    for user in all_users:
        # ТУТ - ЗНАЧЕНИЯ В СЛОВАРЕ ВЕРНЫ
        user_params = get_user_params(user)
        print(user_params)
        # Проверяем, активна ли подписка пользователя
        if user_params['status'] == 1:
            try:
                user_hours_minutes = user_params['send_time'].split(':')
                hours = user_hours_minutes[0]
                minutes = user_hours_minutes[1]

                @aiocron.crontab(f'{minutes} {hours} * * *')
                async def regular_sending():
                    # ТУТ - СЛОВАРЬ УЖЕ С ДАННЫМИ ДРУГОГО ПОЛЬЗОВАТЕЛЯ
                    print(user_params)

loop = asyncio.get_event_loop()

if __name__ == '__main__':
    executor.start_polling(dp, loop=loop)


Ответы (0 шт):