我正在使用 Ruby 和 Eventmachine 库编写一个应用程序。我真的很喜欢非阻塞 I/O 和事件驱动系统的想法,我遇到的问题是日志记录。我正在使用 Ruby 的标准记录器库。并不是说日志记录需要永远,但它似乎不应该阻塞,但它确实阻塞了。是否有某个库将 Ruby 的标准记录器实现扩展为非阻塞的,或者我应该只调用 EM::defer 进行日志记录调用?有没有办法让 eventmachine 已经为我做这件事?
最佳答案
我最终将记录器包装在一个启动线程并具有 FIFO 队列的单例类中。日志记录会将日志信息转储到队列中,线程只是循环,从队列中拉出内容并使用真正的记录器来记录它。不是真正的 react 器模式,但它也不会耗尽我的 EM 线程池。
有了这个单例,你只能有一个记录器,但这是我在 github 上所做的.
关于ruby - 如何使用 Ruby 和 eventmachine 登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4156281/