用于并行请求的Sinatra类实例变量

时间:2017-06-03 05:46:42

标签: ruby sinatra

我的控制器类中有一个方法,每次为特定操作的请求调用(在这种情况下创建)

class DeployProvision
        def self.create(data)
            raise "Input JSON not received." unless data
            # $logger.info input_data.inspect
            failure = false
            response_result = ""
            response_status = "200"
            @validator = SchemaValidate.new
            validation = @validator.validate_create_workflow(data.to_json)
        end
    end

此方法称为(DeployProvision.create(data))

当多个请求到来时,我对@validator类实例变量的行为方式感到有些困惑。它是在多个请求之间共享的。假设@validator指向第一个请求的a1地址,第二个请求指向a2,在第二个请求被触发后,@ validator指向第一个请求的a1或a2。如果SchemaValidate在变量本身内保持一些状态,那么将它声明为类实例变量而不是局部变量是一个好主意吗?

0 个答案:

没有答案