An addendum to my previous post:

this process works from the rails console:

I've removed the specifics of the model and its contents, but they are correct when they come back

>>MiddleMan.worker (:comment_notification_worker).enqueue_action( SomeModel.find(:first) ) {:type=>:do_work, :data=>#<SomeModel:0x25e2944 @attributes={"model attributes "}> , :worker_method =>:enqueue_action, :worker=>:comment_notification_worker}
=> nil

backgroundrb receives the object and handles it properly, writing to the database.

if anyone has any thoughts on this disparity in behavior I'd really appreciate some feedback

kevin

On Apr 29, 2008, at 9:17 AM, Kevin Olsen wrote:

I'm working on a suite of workers that all inherit a lot of their core functionality from a plugin that i'm writing. the plugin works fine when included within my models so the logic there has been tested and works correctly. the goal here is to be able to be able to extend a suite of bdrb workers that will have their basic transactional logic encapsulated in the plugin/module.

I'm thoroughly perplexed and I would love some suggestions on this.


example worker:

class CommentNotificationWorker < BackgrounDRb::MetaWorker
        include  ActionQueue
        
        set_worker_name :comment_notification_worker
        
        def create(args = nil)
        end

end

I'm trying to call it from inside my comment model in an :after_create hook like so (where self is an instance of class Comment, and enqueue_action is inherited from the ActionQueue module):


MiddleMan.worker(:comment_notification_worker).enqueue_action(self)



I'm consistently generating this error:

vendor/plugins/backgroundrb/server/lib/master_worker.rb:32:in `load': undefined class/module Comment (ArgumentError) from /Users/kevin/_yardbarker/action_queue_2008/vendor/plugins/ backgroundrb/server/lib/master_worker.rb:32:in `receive_data' from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_parser.rb:29:in `call' from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_parser.rb:29:in `extract' from /Users/kevin/_yardbarker/action_queue_2008/vendor/plugins/ backgroundrb/server/lib/master_worker.rb:31:in `receive_data' from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:212:in `read_external_socket' from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:204:in `handle_external_messages' from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:178:in `handle_read_event' from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:174:in `each' from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:174:in `handle_read_event' from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:130:in `start_reactor' from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:124:in `loop' from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:124:in `start_reactor' from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_master.rb:21:in `run' from /Users/kevin/_yardbarker/action_queue_2008/vendor/plugins/ backgroundrb/server/lib/master_worker.rb:166:in `initialize'
        from script/backgroundrb:60:in `new'
        from script/backgroundrb:60

followed by a heap of:

/opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_nbio.rb:25:in `read_data': Packet::DisconnectError (Packet::DisconnectError) from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_worker.rb:46:in `handle_internal_messages' from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:176:in `handle_read_event' from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:174:in `each' from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:174:in `handle_read_event' from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:130:in `start_reactor' from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:124:in `loop' from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:124:in `start_reactor' from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_worker.rb:20:in `start_worker' from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_master.rb:133:in `fork_and_load' from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_master.rb:96:in `load_workers' from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_master.rb:91:in `each' from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_master.rb:91:in `load_workers' from /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_master.rb:20:in `run' from /Users/kevin/_yardbarker/action_queue_2008/vendor/plugins/ backgroundrb/server/lib/master_worker.rb:166:in `initialize'
        from script/backgroundrb:60:in `new'
        from script/backgroundrb:60



any recommendations would be appreciated.


_______________________________________________
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