Я пытаюсь лучше понять внутреннюю работу фоновых заданий и то, как они улучшают производительность.
Я понимаю, что цель состоит в том, чтобы приложение возвращало ответ пользователю настолько быстро, насколько это возможно, поэтому вы не хотите, скажем, анализировать огромный канал, который займет 10 секунд, потому что это помешает приложению от возможности обрабатывать любые другие запросы.
Поэтому рекомендуется помещать любые операции, выполнение которых занимает более 500 мс, в фоновое задание в очереди.
Чего я не понимаю, так это разве не задерживает ту же проблему? Я знаю, что пользователь, который вызвал это фоновое задание, получит немедленный ответ, но что, если другой пользователь придет в норму, когда начнется это фоновое задание (и для его завершения требуется 10 секунд), разве этому пользователю придется ждать?
Или основная проблема в том, что requests
- единственное, что может происходить по одному, в то время как, с другой стороны, запрос может начинаться, пока одно + фоновые задания находятся в середине выполнения?
Это правильно?