我有一个延迟的工作,可以完美地针对 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 代码不会被调用。
所以我的问题是。我做错什么了吗?或者更重要的是,我怎样才能做正确的事情?