0

只要我在请求结束时清除它,存储类级别实例不变(即 MyClass.foo)是否被认为是“线程安全的”?例如在 before_filter 中设置值并在 after_filter 中清除它?

我的理解是,如果我不清除它......它将存在于我不想要的未来请求中。但如果我设置它并清除它.. 够好吗?或者两个请求是否会重叠并导致冲突和数据变异?

4

1 回答 1

0

这可能是一个非常糟糕的主意,因为它可能会在请求和会话之间泄露信息。如果您需要一个线程安全的短期缓存,您可以随时将方法添加到request为您创建的对象上。

如果您试图将会话信息下推到模型的全局上下文中,那么您将违反 MVC 设计模式。模型需要的任何信息都应该以明确定义的方式传递,特别是因为这使得测试数量级更简单、更可靠。

于 2012-11-29T22:11:18.063 回答