简体   繁体   中英

Rails: writing a record asynchronously

in my Rails 5 RC1 app write some log entries into a DB table through an ActiveRecord model. Writing this log entry takes a couple of milliseconds and delays the response for the end user. I am searching for a mechanism how I can execute the log-writing into the "background" so it is not blocking/delaying the response (kind of "fire-and-forget"). Do you have some hints on how to do that?

I tried to wrap the respective part into

Thread.new { code }

But this even seems to further delay the response a few MS.

I appreciate any hint!

Thanks and regards

Try looking into messaging services like RabbitMQ for asynchronous transactions and activities. I use RabbitMQ in exactly the way you describe.

If you are using ActiveJob, you could use :async , which looks to be the default queue_adapter for ActiveJob. However, this doesn't persist jobs between restarts and is not really recommended for production.

See Rails 5 changed Active Job default adapter from Inline to Async .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM