ActiveScaffold线程安全

24 activescaffold ruby-on-rails thread-safety

多个来源声称ActiveScaffold不是线程安全的:

从那些我收集的控制器级配置更改和授权不是线程安全的.如果应用程序不使用ActiveScaffold的那些组件,是否可以安全地考虑应用程序线程安全?ActiveScaffold中是否有任何其他功能不是线程安全的?

Val*_*ity 10

不幸的是,关于这个问题的官方文档并没有多少,但是开发人员有两个有用的引用可能对你有所帮助.首先,在2010年,开发人员在此线程中说:

在控制器中,使用marked_records.标记的记录存储在会话中,因此只能从控制器访问它们.模型方法是从当前控制器获取模型方法的一种方法,但它使用的是非线程安全的类变量.

ActiveScaffold不是线程安全的ATM,但我稍后会修复当前的非线程安全代码,我不想添加更多的非线程安全代码.如果需要模型方法,我将使用线程变量添加它们

这表明最初的意图是没有线程安全性.然而它正在开发中.

在此之后,关于此事的讨论似乎变得平静,我找不到任何进一步的官方声明.然而,评论重新发布版本的人说,唯一的线程问题是对active_scaffold_config的更改必须放在某种锁中,以确保安全,并且系统的其余部分现在应该是线程安全的.

请注意,我找不到官方文档来证明这一点,它只是基于读过代码库的用户的评论所以我不保证这总是如此,但鉴于一个开发者的评论说不再是非将添加线程代码这可能是一个安全的赌注.

最后,请注意这个线程,它暗示代码库现在几乎是线程安全的,只要你采取一些预防措施并在一些地方使用变通办法就可以使用线程.

对不起,我这里没有更权威的答案,关于这方面的文档很少,阅读代码很难确定,但这是最接近确定我能得到的(似乎人们已成功使用它生产中的线程至少).