我在使用rails时很困惑何时应该使用Fiber局部变量而不是Thread局部变量。
我的用例如下:
我有一个控制器,当接收到GET请求时会进行一些计算,并将结果(整数列表)存储在Fiber或Thread局部变量中。我需要这样做,以便我可以在模型中访问此计算结果,该模型可能由控制器创建。现在我不想将其存储在session中,因为必须对每个GET请求进行计算。我还清除了在控制器完成GET方法之前的Fiber/Thread局部变量。
现在我看到Fiber和Thread是非常不同的,因此它们的存储变量也不同。请问有谁能解释何时使用哪种类型的变量?
实际上,我的理解如下:
似乎两个请求不能同时在同一个Fiber/Thread中服务。因此,如果我有一个要放在请求范围内的值,任何一种都可以。我的解释正确吗?
我的用例如下:
我有一个控制器,当接收到GET请求时会进行一些计算,并将结果(整数列表)存储在Fiber或Thread局部变量中。我需要这样做,以便我可以在模型中访问此计算结果,该模型可能由控制器创建。现在我不想将其存储在session中,因为必须对每个GET请求进行计算。我还清除了在控制器完成GET方法之前的Fiber/Thread局部变量。
现在我看到Fiber和Thread是非常不同的,因此它们的存储变量也不同。请问有谁能解释何时使用哪种类型的变量?
实际上,我的理解如下:
似乎两个请求不能同时在同一个Fiber/Thread中服务。因此,如果我有一个要放在请求范围内的值,任何一种都可以。我的解释正确吗?
Rails.cache.write
和Rails.cache.read
。 - Daniël Knippers@view_value = ...
,然后在视图中使用@view_value
?我又理解错了吗 :)? - Daniël Knippers