Rails контроллеры, безопасно раскошелиться на блок, а потом вернуть? - PullRequest
3 голосов
/ 19 октября 2010

Короткий и простой вопрос:

fork { something_that_takes_a_few_seconds_and_doesnt_concern_the_user }

respond_to ...

Есть ли причина не делать такого рода вещи в приложении rails? В PHP в настоящее время мы полагаемся на внешние системы очередей, такие как beanstalk или SQS Amazon, в сочетании с асинхронным рабочим, который вытаскивает вещи из очереди для запуска в фоновом режиме. Во многих случаях простая вилка подойдет лучше, в зависимости от сложности задачи.

1 Ответ

1 голос
/ 29 июля 2011

Да, если вы получаете слишком много запросов или этот процесс занимает больше времени, чем ожидалось, вы можете легко взорвать ваш ЦП и память, и приложение Rails начнет поднимать из памяти ошибки.

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

Кроме того, я видел, как многие люди говорили, что при переходе к виртуализированному слову происходит фрагментация памяти (из-за появления и уничтожения многих процессов).может взять их с себя и заставить вас идти медленнее.

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