[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}")

  def send_warranty_notice(data)
      logger.info "Sending warranty notice id is #{data}"

Here's how I call it from IRB

=> Time.now + 3.seconds)

The "send_warranty_notice" method gets called but the parameter passed
(data) is nil.

Calling async_method works fine:


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?

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