Самый простой способ сделать что-то после того, как страница была сгенерирована и отправлена ​​пользователю - PullRequest
1 голос
/ 08 сентября 2011

Мне нужно сделать некоторые манипуляции с изображением (это может занять много времени) после того, как страница была сгенерирована и отправлена ​​пользователю. Не заставлять пользователя ждать, пока эта работа завершена. Примерно так:

if @post.save!
    redirect_to :action => :index
    # Now user is redirected and don't need to wait
    # doing job in a background
    do_image_manipulation
end

Я бы хотел избежать демонизации.

Ответы [ 3 ]

2 голосов
/ 08 сентября 2011

Задержка задания , вероятно, будет самой простой вещью:

if @post.save!
    @post.delay.do_image_manipulation
    redirect_to :action => :index
end

Тогда фактический вызов do_image_manipilation будет обработан позже.В этом задействован своего рода демон (просто постоянно выполняемое задание по рейку), но вам не нужно разбираться с деталями самостоятельно, вы просто вставляете .delay в нужных местах, а Delayed Job берет на себя тяжелую работу.

1 голос
/ 08 сентября 2011

Вы можете попробовать использовать темы. Просто сделайте ваш вид, а затем создайте новую тему.

1 голос
/ 08 сентября 2011

Не уверен, что это можно сделать без запуска какого-либо демона обработки.Вы смотрели на beanstalkd или resque ?

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