On Tue, Feb 12, 2008 at 12:05 AM, John Wells <[EMAIL PROTECTED]> wrote: > > On Feb 11, 2008 1:28 PM, hemant <[EMAIL PROTECTED]> wrote: > > On Mon, Feb 11, 2008 at 8:20 PM, John Wells <[EMAIL PROTECTED]> wrote: > > > On Feb 11, 2008 5:03 AM, hemant kumar <[EMAIL PROTECTED]> wrote: > > > > > > > > On Mon, 2008-02-11 at 00:55 -0800, Alex Soto wrote: > > > > > does require 'lib/formatters' work? > > > > > > > > > > > > > > > On Feb 10, 2008, at 10:11 PM, John Wells wrote: > > > > > > > > > > > Hi guys, > > > > > > > > > > > > New to backgroundrb, and I like it very much conceptually, but I'm > > > > > > struggling to get it to run successfully. I started with trunk, > but > > > > > > was getting a very strange gem require error when starting a > worker > > > > > > (though it wasn't telling me which gem was missing)....see here: > > > > > > http://pastie.caboo.se/150225 > > > > > > > > Its not complaining about any missing gems, rather its not able to > load > > > > workers defined inside lib/workers directory. You must define at least > > > > one worker, before you can start bdrb. In case, you have already > defined > > > > a worker, Can we have a look at the code of your worker? > > > > > > Thanks for your help. Sure thing...the code is below. However, I'm > > > very curious...how did you determine this was the problem? Just so I > > > know what to look for in the future. > > > > Because, when I saw error at: > > > > http://pastie.caboo.se/150225 > > > > It clearly says thats start_worker is failing on 114 line. Generally > > this happens, when bdrb is not able to load a particular worker file. > > Also, you see empty string "gem_original_require': no such file to > > load -- (LoadError)" because bdrb is not able to get name of worker > > file to load correctly. > > > > > > > > > > > > ===== controller that instantiates worker ===== > > > class Admin::BatchController < Admin::ApplicationController > > > > > > def initialize > > > super > > > @formats = GW::BatchListing::ListingRow.formats > > > @part_of = :admin > > > end > > > > > > def get_progress > > > if request.xhr? > > > progress_percent = MiddleMan.get_worker(session[:job_key]).progress > > > render :update do |page| > > > page.call('progressPercent', 'progressbar', progress_percent) > > > page.redirect_to( :action => 'done') if progress_percent >= 100 > > > end > > > else > > > redirect_to :action => 'index' > > > end > > > end > > > > > > def done > > > errors = "DONE " + MiddleMan.get_worker(session[:job_key]).errors > > > if errors.size > 0 > > > flash[:notice] = errors.join("<br/>") > > > else > > > flash[:notice] = "Successful load." > > > end > > > MiddleMan.delete_worker(session[:job_key]) > > > end > > > > > > def add > > > @user = User.find(params[:id]) > > > @cats = Category.find(:all, :conditions=>"parent_id is null") > > > if request.post? > > > listings = params[:listings] > > > content_type = listings.content_type.chomp > > > if "application/zip"!=content_type and > > > "application/x-zip-compressed"!=content_type > > > flash[:notice] = > > > "Only files of type application/zip " + > > > "and application/x-zip-compressed " + > > > "can be used. You uploaded #{content_type}." > > > else > > > # write out to tmp file > > > tmpfile = "/tmp/#{rand 500000}.zip" > > > open(tmpfile, "w") do |f| > > > f << listings.read > > > end > > > parser = > > > GW::BatchListing::ListingParser.new(params[:format], > > > > params[:listing_type], > > > @user) > > > session[:job_key] = > > > MiddleMan.new_worker(:class => :foo_worker, > > > :args => parser) > > > end > > > end > > > end > > > end > > > > > > > There are couple of problems with above code, for example, > > MiddleMan.get_worker is not defined. To get an idea about, which > > methods are defined for MiddleMan, have a look at, > > > > http://backgroundrb.rubyforge.org/classes/BackgrounDRb/WorkerProxy.html > > > > Also, you should read README file that comes with plugin. > > > > > ===== and the worker itself ===== > > > class BatchImportWorker < BackgrounDRb::MetaWorker > > > attr_reader :progress > > > attr_reader :errors > > > set_worker_name :batch_import_worker > > > > > > def create(args = nil) > > > # this method is called, when worker is loaded for the first time > > > end > > > > > > def do_work(parser) > > > @progress = 0 > > > @errors = parser.process(tmpfile) > > > end > > > end > > > > Well, I find no problems with above worker code, and it should load. > > Create a fresh rails app and see if bdrb works there. > > > Ok, sorry... I was working from the old InfoQ article by Ezra and the > api docs. I probably made some bad assumptions there...I will take a > hard look and try it again. > > Thanks for your help!
Just catching up on this. So, did you manage to get it work after reading latest docs? If yes, can you tell us, why bdrb was not able to load your worker? _______________________________________________ Backgroundrb-devel mailing list [email protected] http://rubyforge.org/mailman/listinfo/backgroundrb-devel
