在我的Rails 5 RC1应用程序中,通过ActiveRecord模型将一些日志条目写入数据库表。 写入此日志条目需要几毫秒的时间并延迟最终用户的响应。 我正在寻找一种机制,我可以如何执行日志写入“背景”,因此它不会阻止/延迟响应(类似于“即发即忘”)。你有关于如何做到这一点的一些提示吗?
我试图将相应的部分包装成
Thread.new { code }
但这甚至似乎进一步推迟了几个MS的反应。
我感谢任何提示!
谢谢和问候
答案 0 :(得分:0)
尝试查看RabbitMQ等消息传递服务以进行异步事务和活动。我完全按照你描述的方式使用RabbitMQ。
答案 1 :(得分:0)
如果您使用的是ActiveJob,则可以使用:async
,它看起来是ActiveJob的默认queue_adapter
。但是,这并不会在重新启动之间保持作业,并且不建议用于生产。
请参阅Rails 5 changed Active Job default adapter from Inline to Async。