[Backgroundrb-devel] enq_method doesn't pass 'arg'
Justin Wood
justin.wood at trifectagis.com
Fri Mar 13 00:22:56 EDT 2009
Hi, All
It appears that when you enque a task, backgroundrb doesn't pass the "arg"
parameter when running the enqued method.
This is my worker:
class NotificationWorker < BackgrounDRb::MetaWorker
set_worker_name :notification_worker
def create(args = nil)
logger.info("Args: #{args}")
end
def send_warranty_notice(data)
logger.info "Sending warranty notice id is #{data}"
end
end
Here's how I call it from IRB
MiddleMan.worker(:notification_worker).enq_send_warranty_notice(:arg=>"asdf",:job_key=>Time.now.to_s,:scheduled_at
=> Time.now + 3.seconds)
The "send_warranty_notice" method gets called but the parameter passed
(data) is nil.
Calling async_method works fine:
MiddleMan.worker(:notification_worker).async_send_warranty_notice(:arg=>"asdf")
prints out "Sending warranty notice id is asdf" in the drb log.
Also I noticed that on the following page
http://backgroundrb.rubyforge.org/workers/ the following text
MiddleMan(:hello_worker).enq_some_task(:arg => "hello_world",:job_key => "boy")
should read
MiddleMan.worker(:hello_worker).enq_some_task(:arg =>
"hello_world",:job_key => "boy") ... unless I am missing something?
Any suggestions on how I can fix the arg passing problem?
Regards
Justin Wood
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/backgroundrb-devel/attachments/20090313/c0e75852/attachment.html>
More information about the Backgroundrb-devel
mailing list