Stephen Weiss
2008-Mar-20 19:06 UTC
[Backgroundrb-devel] can''t call any methods on workers
Hi, I''m a long time backgroundrb user, still stuck using the very ancient original version from Ezra (not even Ezra''s 2.0 version, I''m using the one that didn''t really have a version number). The 2.0 version did very little but crash for me. Anyway I finally got some time set aside to try out this new version you all have been developing. I''m very excited about the new all_worker_info method on MiddleMan! It should drastically improve the way my users can manage their background processes. Unfortunately, I can''t seem to get even the most basic worker to do anything. I followed all the instructions for installation, and installed from SVN (I''m on OS X Tiger, it doesn''t appear that there''s a very good port for git out there without installing a package manager, which tend to screw up the rest of my computer). I deleted my script/backgroundrb directory, and the old backgroundrb out of vendor plugins. I checked out the SVN source and moved it into / vendor/plugins. I installed all the appropriate gems (and my packet version is 0.1.5). The server starts fine with this config: :backgroundrb: :port: 11006 # port to start listen :ip: 0.0.0.0 # host to listen :environment: development # rails environment to load :log: foreground # foreground mode,print log messages on console And I can start my test worker. However, whenever I call any method on my test_worker, I get this error in backgroundrb_11006_debug.log: 00000004{:worker_method:process_batch: type: do_work worker_methodprocess_batchtypedo_work You have a nil object when you didn''t expect it! The error occurred while evaluating nil.send_request /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_master.rb:44:in `ask_worker'' /Users/sweiss/Documents/workspace/RACE-local/vendor/plugins/ backgroundrb/server/lib/master_worker.rb:104:in `process_work'' /Users/sweiss/Documents/workspace/RACE-local/vendor/plugins/ backgroundrb/server/lib/master_worker.rb:35:in `receive_data'' /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_parser.rb:29:in `call'' /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_parser.rb:29:in `extract'' /Users/sweiss/Documents/workspace/RACE-local/vendor/plugins/ backgroundrb/server/lib/master_worker.rb:31:in `receive_data'' /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:212:in `read_external_socket'' /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:204:in `handle_external_messages'' /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:178:in `handle_read_event'' /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:174:in `each'' /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:174:in `handle_read_event'' /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:130:in `start_reactor'' /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:124:in `loop'' /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:124:in `start_reactor'' /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_master.rb:21:in `run'' /Users/sweiss/Documents/workspace/RACE-local/vendor/plugins/ backgroundrb/server/lib/master_worker.rb:166:in `initialize'' script/backgroundrb:42:in `new'' script/backgroundrb:42 It doesn''t matter what''s in the method, it could be empty and it still doesn''t run (I am restarting backgroundrb after each modification - is this still necessary?). Here''s my test worker: class BatchMakerWorker < BackgrounDRb::MetaWorker set_worker_name :batch_maker_worker def create(args = nil) # this method is called, when worker is loaded for the first time end def process_batch end end The rails code I''m using to test the worker looks like this: job_key = MiddleMan.new_worker(:class => :batch_maker_worker) worker = MiddleMan.worker(job_key) worker.process_batch Anyway, the only thing I could find on the error out there was this (pastie.caboo.se/pastes/167509 ), which someone posted yesterday. This leads me to believe some bug got put on the SVN very recently, and at least one other person''s in the same boat. If anyone has a version that does work, or if anyone knows what wrong gem I''m using or what I''m doing wrong in general, I''d really appreciate it. I only have a week or so I can devote to this before my boss puts me onto something else, and I''d *really* like to upgrade to something that''s not twice-deprecated. Machine runs OS X (client) 10.4.11, ruby 1.8.5 Thanks everyone! Sorry about the super long e-mail... -- Steve
Stephen Weiss
2008-Mar-21 01:07 UTC
[Backgroundrb-devel] can''t call any methods on workers
[ sorry if this went out twice, sent once but it didn''t seem to go through ] Hi, I''m a long time backgroundrb user, still stuck using the very ancient original version from Ezra (not even Ezra''s 2.0 version, I''m using the one that didn''t really have a version number). The 2.0 version did very little but crash for me. Anyway I finally got some time set aside to try out this new version you all have been developing. I''m very excited about the new all_worker_info method on MiddleMan! It should drastically improve the way my users can manage their background processes. Unfortunately, I can''t seem to get even the most basic worker to do anything. I followed all the instructions for installation, and installed from SVN (I''m on OS X Tiger, it doesn''t appear that there''s a very good port for git out there without installing a package manager, which tend to screw up the rest of my computer). I deleted my script/backgroundrb directory, and the old backgroundrb out of vendor plugins. I checked out the SVN source and moved it into / vendor/plugins. I installed all the appropriate gems (and my packet version is 0.1.5). The server starts fine with this config: :backgroundrb: :port: 11006 # port to start listen :ip: 0.0.0.0 # host to listen :environment: development # rails environment to load :log: foreground # foreground mode,print log messages on console And I can start my test worker. However, whenever I call any method on my test_worker, I get this error in backgroundrb_11006_debug.log: 00000004{:worker_method:process_batch: type: do_work worker_methodprocess_batchtypedo_work You have a nil object when you didn''t expect it! The error occurred while evaluating nil.send_request /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_master.rb:44:in `ask_worker'' /Users/sweiss/Documents/workspace/RACE-local/vendor/plugins/ backgroundrb/server/lib/master_worker.rb:104:in `process_work'' /Users/sweiss/Documents/workspace/RACE-local/vendor/plugins/ backgroundrb/server/lib/master_worker.rb:35:in `receive_data'' /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_parser.rb:29:in `call'' /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_parser.rb:29:in `extract'' /Users/sweiss/Documents/workspace/RACE-local/vendor/plugins/ backgroundrb/server/lib/master_worker.rb:31:in `receive_data'' /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:212:in `read_external_socket'' /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:204:in `handle_external_messages'' /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:178:in `handle_read_event'' /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:174:in `each'' /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:174:in `handle_read_event'' /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:130:in `start_reactor'' /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:124:in `loop'' /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_core.rb:124:in `start_reactor'' /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ packet_master.rb:21:in `run'' /Users/sweiss/Documents/workspace/RACE-local/vendor/plugins/ backgroundrb/server/lib/master_worker.rb:166:in `initialize'' script/backgroundrb:42:in `new'' script/backgroundrb:42 It doesn''t matter what''s in the method, it could be empty and it still doesn''t run (I am restarting backgroundrb after each modification - is this still necessary?). Here''s my test worker: class BatchMakerWorker < BackgrounDRb::MetaWorker set_worker_name :batch_maker_worker def create(args = nil) # this method is called, when worker is loaded for the first time end def process_batch end end The rails code I''m using to test the worker looks like this: job_key = MiddleMan.new_worker(:class => :batch_maker_worker) worker = MiddleMan.worker(job_key) worker.process_batch Anyway, the only thing I could find on the error out there was this (pastie.caboo.se/pastes/167509 ), which someone posted yesterday. This leads me to believe some bug got put on the SVN very recently, and at least one other person''s in the same boat. If anyone has a version that does work, or if anyone knows what wrong gem I''m using or what I''m doing wrong in general, I''d really appreciate it. I only have a week or so I can devote to this before my boss puts me onto something else, and I''d *really* like to upgrade to something that''s not twice-deprecated. Machine runs OS X (client) 10.4.11, ruby 1.8.5 Thanks everyone! Sorry about the super long e-mail... -- Steve
On Fri, Mar 21, 2008 at 12:36 AM, Stephen Weiss <sweiss at stylesight.com> wrote:> > Hi, > > I''m a long time backgroundrb user, still stuck using the very ancient > original version from Ezra (not even Ezra''s 2.0 version, I''m using the > one that didn''t really have a version number). The 2.0 version did > very little but crash for me. Anyway I finally got some time set > aside to try out this new version you all have been developing. I''m > very excited about the new all_worker_info method on MiddleMan! It > should drastically improve the way my users can manage their > background processes. > > Unfortunately, I can''t seem to get even the most basic worker to do > anything. I followed all the instructions for installation, and > installed from SVN (I''m on OS X Tiger, it doesn''t appear that there''s > a very good port for git out there without installing a package > manager, which tend to screw up the rest of my computer). I deleted > my script/backgroundrb directory, and the old backgroundrb out of > vendor plugins. I checked out the SVN source and moved it into / > vendor/plugins. I installed all the appropriate gems (and my packet > version is 0.1.5). > > The server starts fine with this config: > > :backgroundrb: > :port: 11006 # port to start listen > :ip: 0.0.0.0 # host to listen > :environment: development # rails environment to load > :log: foreground # foreground mode,print log messages on console > > And I can start my test worker. However, whenever I call any method > on my test_worker, I get this error in backgroundrb_11006_debug.log: > 00000004{:worker_method:process_batch: type: > do_work > worker_methodprocess_batchtypedo_work > You have a nil object when you didn''t expect it! > The error occurred while evaluating nil.send_request > /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ > packet_master.rb:44:in `ask_worker'' > /Users/sweiss/Documents/workspace/RACE-local/vendor/plugins/ > backgroundrb/server/lib/master_worker.rb:104:in `process_work'' > /Users/sweiss/Documents/workspace/RACE-local/vendor/plugins/ > backgroundrb/server/lib/master_worker.rb:35:in `receive_data'' > /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ > packet_parser.rb:29:in `call'' > /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ > packet_parser.rb:29:in `extract'' > /Users/sweiss/Documents/workspace/RACE-local/vendor/plugins/ > backgroundrb/server/lib/master_worker.rb:31:in `receive_data'' > /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ > packet_core.rb:212:in `read_external_socket'' > /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ > packet_core.rb:204:in `handle_external_messages'' > /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ > packet_core.rb:178:in `handle_read_event'' > /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ > packet_core.rb:174:in `each'' > /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ > packet_core.rb:174:in `handle_read_event'' > /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ > packet_core.rb:130:in `start_reactor'' > /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ > packet_core.rb:124:in `loop'' > /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ > packet_core.rb:124:in `start_reactor'' > /usr/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet/ > packet_master.rb:21:in `run'' > /Users/sweiss/Documents/workspace/RACE-local/vendor/plugins/ > backgroundrb/server/lib/master_worker.rb:166:in `initialize'' > script/backgroundrb:42:in `new'' > script/backgroundrb:42 > > It doesn''t matter what''s in the method, it could be empty and it still > doesn''t run (I am restarting backgroundrb after each modification - is > this still necessary?). > > Here''s my test worker: > > class BatchMakerWorker < BackgrounDRb::MetaWorker > set_worker_name :batch_maker_worker > def create(args = nil) > # this method is called, when worker is loaded for the first time > end > > def process_batch > > end > endWorker code is ok.> > > The rails code I''m using to test the worker looks like this: > > job_key = MiddleMan.new_worker(:class => :batch_maker_worker) > worker = MiddleMan.worker(job_key) > worker.process_batch > > Anyway, the only thing I could find on the error out there was this (pastie.caboo.se/pastes/167509 > ), which someone posted yesterday. This leads me to believe some bug > got put on the SVN very recently, and at least one other person''s in > the same boat.Okay, above way of interacting with workers is totally wrong. Correct code is: job_key = MiddleMan.new_worker(:worker => :batch_maker_worker,:job_key => "some_unique") worker = MiddleMan.worker(:batch_maker_worker,job_key) worker.process_batch Couple of things have changed since old version of bdrb, and new docs can be found here: backgroundrb.rubyforge.org/rails/index.html> > If anyone has a version that does work, or if anyone knows what wrong > gem I''m using or what I''m doing wrong in general, I''d really > appreciate it. I only have a week or so I can devote to this before > my boss puts me onto something else, and I''d *really* like to upgrade > to something that''s not twice-deprecated. > > Machine runs OS X (client) 10.4.11, ruby 1.8.5 > > Thanks everyone! Sorry about the super long e-mail... > > -- > Steve > _______________________________________________ > Backgroundrb-devel mailing list > Backgroundrb-devel at rubyforge.org > rubyforge.org/mailman/listinfo/backgroundrb-devel >-- Let them talk of their oriental summer climes of everlasting conservatories; give me the privilege of making my own summer with my own coals. gnufied.org