Как будет проходить работа асинхронного скрипта с синхронными функциями Python (общие вопросы)
Час добрый
Подскажите пожалуйста как будет себя вести примерно следующий скрипт:
Есть асинхронный скрипт который работает для n пользователей (для примера возьмем 5)
В бд лежит 5 пользователей и у каждого пользователя есть по 1 задаче со статусом start (пример)
Асинхронный скрипт будет вызывать обычную, синхронную функцию для задач со статусом start.
В итоге получится что одновременно будет выполняться функция для всех 5-ти пользователей или же для каждого по очереди?
С асинхронностью только знакомлюсь, в многопотоке бы написал для обработки всех пользователей что то по типу такого:
users = [
{'username': 'user', 'task:'start'},
{'username': 'user1', 'task:'start'},
.................
]
(грубый пример данных в бд)
from multiprocessing import Pool
def start_task(user):
print(f'[INFO] Старт задачи для {user}')
# И ниже различный код для старта задачи
def main():
users = ['user1', 'user2', 'user3']
# Для примера всего 3 пользователя
# За место подобного списка данные должны браться из бд (но для примера это лишнее)
# Так же должен браться ключ task и проверка if task == 'start': (но для примера опять же лишнее)
process_count = 3
p = Pool(processes=process_count)
p.map(start_task, users)
# EDITED
# Код выше просто как рабочий пример необходимой обработки
# Вопрос стоит в том, чтобы заменить мультипроцессорность на асинхронность
if __name__ == '__main__':
main()
Как похожее можно реализовать используя асинхронный скрипт?