0
我對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(數據))
我有點困惑了@validator類實例變量在多個請求到來時的行爲。它在多個請求中共享嗎?將它聲明爲類實例變量而不是局部變量是個好主意嗎?
我的工作在現有的代碼庫,並想了解作爲一個類的實例變量而不是局部變量創建@validator的意圖。
我明白,每次我們創建一個新的時間實例,所以內存中的地址將是新的。我的問題是,在第一個傳入請求之後,測試點是a1的地址和第二個傳入請求之後是a2。如果第一個請求的代碼中的某處不應該測試指向a2(由第二個請求修改)而不是a1,因爲類實例varibale將在每個類的實例之間共享。 – madcolonel10