我想在environment.rb中创建一个线程对象,并在某个控制器的其他操作中使用它。
我该怎么做?
提前谢谢。
实际上,我希望有三个进程永久运行,它们获取一些数据并将其存储在数据库中。这就是我用线的原因。还有别的办法吗?
最佳答案
为了回答您的初始问题,environment.rb中声明的常量在整个代码库中都是可用的。不过,如果可以,请避免这样做;这可能会很快成为配置意大利面。
更广泛地说,尽管rails自2.2版以来(据我所知)一直是线程安全的,但线程作为一种提供并发操作的方式仍然非常少见(特别是在mri中),而且mri的绿色线程也没有特别的帮助。考虑使用像Starling这样的消息队列,它可以启动其他ruby进程来执行异步工作。