ActiveRecord table_name线程安全吗?

时间:2013-12-14 02:46:31

标签: ruby-on-rails ruby multithreading activerecord

我有一个多线程Rails应用程序(使用Sidekiq),并且在每个线程中我将SomeModel的table_name设置为不同的表名

示例:

Thread 1:
SomeModel.table_name = "temp_table1"

Thread 2:
SomeModel.table_name = "temp_table2"

这是线程安全吗?

换句话说,如果我在线程1中将其设置为“temp_table1”,那么线程2或其他线程是否仍然可以看到此更改,或者它是否仅适用于线程1?

我正在使用vanilla Ruby。

1 个答案:

答案 0 :(得分:0)

在MRI中设置变量是线程安全的。在线程1更新值后,所有其他线程将看到相同的值。