我有一個延遲的作業,它對postgresql中的公共模式運行完美。
我的大部分操作都不過對其他模式(每個客戶端)
延誤工作;它在過濾器之前跳過
處理不同模式我已經按照說明操作,並把代碼切換搜索路徑,在我的before_filter(應用控制器)。
我注意到了。 before_filter中的代碼在典型操作期間被完美調用,但在延遲作業期間完全沒有。
我修剪和修剪了一切,但我能想到的最簡單的事情,以顯示入口。
class ApplicationController < ActionController::Base
protect_from_forgery
def write_to_log(text)
File.open('c:\temp.txt', 'ab') do |f|
f.write text + "\r\n"
f.close
end
end
before_filter :on_before_filter
def on_before_filter
write_to_log('hey dave');
return if(use_token() == false);
set_active_schema if(goto_log_in? == false);
end
在工人階級
def run_job(id)
upload = Upload.find(id)
upload.run_job();
end
handle_asynchronously :run_job, :priority => 10, :queue => 'public'
相當標準的東西的代碼?儘管作業中的代碼運行,但before_filter代碼不會被調用。
所以我的問題是。我做錯什麼了嗎?或者更重要的是,我該如何做對嗎?
爲什麼延遲作業會從您的控制器運行某些內容? –
Humm ..好點..爲什麼數據庫過濾器在控制器中? :)我接受你的觀點..你會在哪裏放置過濾器代碼? – baash05
鑑於current_user不是模型範圍的一部分。在過濾器之前,似乎有一個奇怪的選擇,因爲它永遠不會工作? – baash05