![](/img/trans.png)
[英]Is it possible to avoid loading action_controller with Rails 3?
[英]Rails - Avoid simultaneous execution of controller action
class ExampleController < ApplicationController
def getAPI
#retrieve and process data from API
end
end
如何避免控制器動作同時執行? 類變量會起作用嗎?
class ExampleController < ApplicationController
@@in_progress = false
def getAPI
render and return if @@in_progress
@@in_progress = true
#retrieve and process data from API
@@in_progress = false
end
end
即使應用程序運行多個過程(例如,乘客),類變量是否仍是持久變量? 這是個好主意嗎?
如果多個用戶請求相同的控制器操作,或者僅避免一個用戶同時執行,這是否可以工作?
您必須根據許多因素使用合適的工具來解決此問題。
編輯:請不要實現自己的類似互斥體的機制( @@in_progress
)。 有一些工具可以自動處理這些問題,並且已經過了良好的測試。
Edit2:如果您的控制器操作是等待來自API的同步響應,則這是要異步運行的作業。 考慮使用諸如Sidekiq之類的工具。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.