I'm using Impressionist to record page impressions. The database write only takes about 50ms, but I'd really prefer to do it after the page has rendered and been sent to the client.
I've looked into forking via Spawn, but it establishes a new database connection, which seems to be overkill for such a small job. Delayed Job and other background processing libraries seem like major overkill. Writing to the database just to defer writing to the database...not a win.
I wish I could just:
def show
render
impressionist(@article)
end
...and have impressionist do its thing with the same database connection and all the same request data as the action, just after the action has already returned to the client. But of course that's not how the render method works.
Any solutions? Running Rails 3.1 and Ruby 1.9.2 on Heroku Cedar.