Rails:异步写一条记录

时间:2016-06-11 16:33:45

标签: ruby-on-rails concurrency

在我的Rails 5 RC1应用程序中,通过ActiveRecord模型将一些日志条目写入数据库表。 写入此日志条目需要几毫秒的时间并延迟最终用户的响应。 我正在寻找一种机制,我可以如何执行日志写入“背景”,因此它不会阻止/延迟响应(类似于“即发即忘”)。你有关于如何做到这一点的一些提示吗?

我试图将相应的部分包装成

Thread.new { code }

但这甚至似乎进一步推迟了几个MS的反应。

我感谢任何提示!

谢谢和问候

2 个答案:

答案 0 :(得分:0)

尝试查看RabbitMQ等消息传递服务以进行异步事务和活动。我完全按照你描述的方式使用RabbitMQ。

答案 1 :(得分:0)

如果您使用的是ActiveJob,则可以使用:async,它看起来是ActiveJob的默认queue_adapter。但是,这并不会在重新启动之间保持作业,并且不建议用于生产。

请参阅Rails 5 changed Active Job default adapter from Inline to Async