Уточнение ... Так что фоновые задания не связывают ресурсы приложения (в Rails)? - PullRequest
0 голосов
/ 02 июня 2010

Я пытаюсь лучше понять внутреннюю работу фоновых заданий и то, как они улучшают производительность.

Я понимаю, что цель состоит в том, чтобы приложение возвращало ответ пользователю настолько быстро, насколько это возможно, поэтому вы не хотите, скажем, анализировать огромный канал, который займет 10 секунд, потому что это помешает приложению от возможности обрабатывать любые другие запросы.

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

Чего я не понимаю, так это разве не задерживает ту же проблему? Я знаю, что пользователь, который вызвал это фоновое задание, получит немедленный ответ, но что, если другой пользователь придет в норму, когда начнется это фоновое задание (и для его завершения требуется 10 секунд), разве этому пользователю придется ждать?

Или основная проблема в том, что requests - единственное, что может происходить по одному, в то время как, с другой стороны, запрос может начинаться, пока одно + фоновые задания находятся в середине выполнения?

Это правильно?

1 Ответ

1 голос
/ 02 июня 2010

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

По сути, это внешнее приложение, работающее вне веб-сервера с одним или несколькими процессами, обрабатывающими запросы.

Таким образом, не имеет значения, если какой-либо пользователь запрашивает страницу, поскольку задание не занимает веб-сервер, пользователю не придется ждать, пока что-либо завершится.

Если этот пользователь также делает что-то, что помещается в фоновую очередь, то он просто будет складываться там до тех пор, пока не завершится первый (или в случае, если это обрабатывается несколькими процессами, как только он будет имеется).

Надеюсь, это объяснение сделает его более понятным:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...