Abilka, Окей, перед тобой задача сделать просчет и рассылку на 1000 юзеров. Сделай мне так чтобы не было race condition и сделай удобный вывод данных с каждого треда так чтобы не было NullPointerException. Не забывый что поток занимает 8мб ОЗУ. Треды слишком тяжелы и неудобны, по крайней мере их реализации в питоне. Лучше использовать асинхронные функции, генераторы и асинхронные задачи Celery. Которые быстры и умещаются в одном потоке. Также aiogram полностью асинхронный и предовтращает некоторые проблемы которые могут возникать на стороне телеграмма
Muha665161, Это все вместе надо использовать, aiogram как основной фреймворк для удобного взаимодействия с апи телеграмма, Celery для фоновых задач, sqlalchemy - orm для твоей бдшки. Можешь вовсе импортировать джанго в проект и юзать джанго-орм.