Rails:异步写入记录
问题描述:
在我的Rails中5 RC1应用程序通过ActiveRecord模型将一些日志条目写入数据库表。 编写此日志条目需要几毫秒并延迟最终用户的响应。 我正在寻找一种机制,可以将日志写入“背景”,因此它不会阻止/延迟响应(某种“即燃即用”)。你有什么提示如何做到这一点?Rails:异步写入记录
我试着到各自的部分包装成
Thread.new { code }
但这似乎甚至进一步延迟响应几ms。
我很欣赏任何提示!
感谢和问候
答
尝试寻找RabbitMQ等异步事务和活动的消息传递服务。我完全按照你描述的方式使用RabbitMQ。
答
如果您使用ActiveJob,则可以使用:async
,这看起来是ActiveJob的默认queue_adapter
。但是,这不会在重新启动之间持续作业,也不是真正推荐用于生产。
参见Rails 5 changed Active Job default adapter from Inline to Async。
感谢您的提示。我已经考虑过了。但我希望找到一个不需要额外安装服务器的解决方案...... – Daniel