Как выполнить некоторые задачи после рендеринга в Rails 3.1

Я использую Импрессионист для записи впечатлений от страниц. Запись в базу данных занимает всего около 50 мс, но я бы предпочел сделать это после того, как страница будет отрисована и отправлена ​​клиенту.

Я изучал возможность разветвления через Spawn , но он устанавливает новое соединение с базой данных, что кажется излишним для такой небольшой работы. Отложенное задание и другие библиотеки фоновой обработки кажутся серьезным излишеством. Запись в базу данных только для того, чтобы отложить запись в базу данных ... не победа.

Хотел бы я просто:

def show
  render
  impressionist(@article)
end

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

Какие-нибудь решения? Запуск Rails 3.1 и Ruby 1.9.2 на Heroku Cedar.

12
задан jasongarber 17 November 2011 в 12:51
поделиться