Hey Max,

Thanks for the reply. I want to move this back to AR that's why I want to
implement backgroundrb. This process can take up to 29 minutes using Active
Record where if I do straight SQL inserts it's a 2 minute process. I'm
importing about 200K records at a time.  I don't like programming outside
the box though and the downside is I loose the ability to do validations and
other nifty AR functions which I think is more useful than the time issue.
In any case I had another question...

1.) What is the difference between MiddleMan.worker & Middleman.worker_new ?
This is my biggest hang up. I'm not sure how to call the worker
appropriately so it will create a session and fire my function

Thanks!

Chris

On Wed, Oct 14, 2009 at 2:17 AM, Max Williams
<[email protected]>wrote:

> I'm a bit of a backgroundrb noob, though i do use it for several different
> things.  I usually follow the paradigm of keeping the controller code as
> similar as possible, but instead of calling the original model method,
> calling a new model method which calls a backgroundrb task, which in turn
> calls the *original* model method.  eg instead of this
>
> -controller calls 'my_obj.do_heavy_lifting'
> -instance method do_heavy_lifting runs and returns
> -controller continues
>
> I do this
>
> - controller calls 'my_obj.background_do_heavy_lifting'
> - instance method background_do_heavy_lifting runs:it just calls a worker
> method and returns
> - controller continues
> - worker method (in the background) calls 'my_obj.do_heavy_lifting'
> -instance method do_heavy_lifting runs (in the background) and returns
>
> Of course this assumes that do_heavy_lifting can be done asynchronously, ie
> that the controller can carry on without waiting for it to finish.  But i
> assume that's the case because otherwise why use backgroundrb?
>
> BTW your code for adding a record to the database is kind of horrible and
> very error prone - why can't you use AR::Base.create?
>
>
> 2009/10/14 Chris Sund <[email protected]>
>
>> Hey Everyone,
>>
>> I'm trying to get backgroundrb running and I would consider myself an
>> intermediate rails programmer. I have the following controller method that I
>> would like to move to a worker method, but I'm not sure how to properly call
>> it from my controller once I place it in the worker method. Any advice or
>> help would be appreciated. Due to the fact I am still learning, code
>> examples would be awesome, but not necessary. I can usually get things
>> figured out given enough time.
>>
>> Thanks!
>>
>> Chris
>>
>>
>> def download_reads
>>
>>     if fields_mapped?
>>          mapped_fields.each do |row|
>>
>>            ActiveRecord::Base.connection.execute(
>>                    "insert into readings(reading,
>>                                             date,
>>                                             year,
>>                                accounting_period,
>>                                       account_id,
>>                                       water_usage,
>>                                       created_at,
>>                                       updated_at)
>>                               values ('#{row[0]}',
>>                                       '#{row[1]}',
>>                                       '#{row[2]}',
>>                                       '#{row[3]}',
>>                                       '#{row[4]}',
>>                                       '#{row[5]}',
>>                                       '#{Time.current.to_s(:db)}',
>>                                       '#{Time.current.to_s(:db)}');")
>>
>>          end
>>          flash[:notice] = 'Water Readings Have Been Downloaded'
>>         redirect_to :action => :download
>>        else
>>
>>        end
>>      rescue MapFields::InconsistentStateError
>>        flash[:error] = 'Please try again'
>>        redirect_to :action => :download
>>      rescue MapFields::MissingFileContentsError
>>        flash[:error] = 'Please upload a file'
>>        redirect_to :action => :download
>>
>>    end
>>
>>
>> _______________________________________________
>> Backgroundrb-devel mailing list
>> [email protected]
>> http://rubyforge.org/mailman/listinfo/backgroundrb-devel
>>
>
>
_______________________________________________
Backgroundrb-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/backgroundrb-devel

Reply via email to