Повышение производительности контроллера Ruby on Rails - PullRequest
1 голос
/ 16 февраля 2010

У меня следующий код в контроллере

user = RegUser.create_reg_user(:some_parameters)
UserStuff.pass_user(some_parameters)
@hex = user.hex

@hex передается в представление и возвращается. Вызов UserStuff занимает приличное количество времени и фактически не важен для @hex, необходимого для представления Есть ли способ пойти дальше и вернуть @hex, загрузить представление и позволить процессу UserStuff впоследствии?

Ответы [ 2 ]

2 голосов
/ 16 февраля 2010

Перенесите эти виды долго выполняющихся «заданий» в фоновую очередь. Возможно, вам проще всего начать настройку и запустить это Задержка задания .

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

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

0 голосов
/ 16 февраля 2010

Задержка задания хороша и проста в использовании. Я рекомендую это.

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