我有一个Rails应用程序,其中少量操作需要大量的计算时间.我没有考虑将这些操作作为后台任务进行管理的复杂性,而是发现我可以将处理拆分为多个线程,并且通过将J
Ruby与多核服务器一起使用,我可以确保所有线程在合理的时间内完成. (客户已表示非常有兴趣在后台保持此方法与运行任务.)
问题是写入Rails记录器在这些线程中不起作用.日志文件中没有显示任何内容.我发现了一些对这个问题的引用但没有解决方案.我不介意在我的代码中插入puts以帮助调试,但是stdout似乎被glassfish gem app服务器吃掉了.
有没有人成功完成Rails ruby线程内的日志记录而不是每次都创建一个新日志?
解决方法
同样的问题让我摸不着头脑.对我来说,答案如下:
Thread.new do begin ... ensure Rails.logger.flush end end