<a href="http://rubyforge.org/pipermail/backgroundrb-devel/2007-February/000755.html">http://rubyforge.org/pipermail/backgroundrb-devel/2007-February/000755.html</a><br><br>Is this post relevant to the error I am seeing? Is it just that I can't spawn a worker every minute and expect it to stay sane?
<br><br><div><span class="gmail_quote">On 3/13/07, <b class="gmail_sendername">David Balatero</b> <<a href="mailto:david.balatero@gmail.com">david.balatero@gmail.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Also, I just realized I didn't provide any of my system information:<br><br>I am running Ruby 1.8.5 on Gentoo Linux, with the following gem versions:<br> - rails 1.2.2<br> - slave 1.2.0<br> - daemons 1.0.4<br> - lighttpd
1.3.16 (ssl)<br><br>Thanks!<br><span class="sg">David</span><div><span class="e" id="q_1114d8178358fb7e_2"><br><br><div><span class="gmail_quote">On 3/13/07, <b class="gmail_sendername">David Balatero</b> <<a href="mailto:david.balatero@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
david.balatero@gmail.com</a>> wrote:</span>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">I have a scheduled worker that runs every minute, checking for new eBay auctions to post. If it finds an auction, then it posts it. If there are no auctions in the database that are queued up, it simply does nothing. I got the worker to finally run as a scheduled worker, every minute. However, after about 30-45 scheduled runs, it simply stops running.
<br><br>My backgroundrb_schedules.yml file:<br>------<br>ebay_runner:<br> :class: :ebay_auction_worker<br> :job_key: :ebay_auction_runner<br> :trigger_type: :cron_trigger<br> :trigger_args: 0 * * * * * *<br>------<br>
<br>My ebay_auction_worker.rb file:<br>------<br>class EbayAuctionWorker < <span name="st">BackgrounDRb</span>::Rails<br> # Set this worker to run every minute.<br> attr_accessor :progress, :description
<br><br> def do_work(args)<br> # This method is called in it's own new thread when you
<br> # call new worker. args is set to :args<br><br> @progress = 0<br> @description = "Checking for eBay auctions and posting"<br><br> logger.info("Checking to post an auction at #{Time.now.to_s
}.")<br> auction = EbayAuction.find(:first, :conditions => ["auction_status = ? AND post_on < ?", EbayAuction::STATUS_STRINGS[:queued], Time.now])<br> if auction<br> logger.info("--- Posting auction: #{
auction.title}")<br><br> # This method only takes 1-3 seconds tops to run -- it just generates an <AddItem> call to eBay's XML API, and sends it along.<br> auction.post<br> else<br> <a href="http://logger.info" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
logger.info</a>
("--- No auctions currently need posting.")<br> end<br><br> @progress = 100<br><br> logger.info("--- Finished auction check.")<br><br> # Exit the thread to cleanup.<br> self.delete<br> end
<br>end<br><br>EbayAuctionWorker.register<br>-------<br><br><br>From the server logs, I'm getting this output:<br>--------<br>20070312-18:14:31 (24026) Starting <span name="st">BackgrounDRb</span> Server
<br>20070312-18:14:31 (24026) load_rails: true
<br>20070312-18:14:31 (24026) uri: drbunix:///tmp/backgroundrbunix_localhost_22222<br>20070312-18:14:31 (24026) config: /home/david/redclay/config/<span name="st">backgroundrb</span>.yml<br>20070312-18:14:31 (24026) temp_dir: /tmp
<br>20070312-18:14:31 (24026) database_yml: config/database.yml
<br>20070312-18:14:31 (24026) worker_dir: /home/david/redclay/lib/workers<br>20070312-18:14:31 (24026) protocol: drbunix<br>20070312-18:14:31 (24026) socket_dir: /tmp/<span name="st">backgroundrb</span>
.24026<br>20070312-18:14:31 (24026) environment: development
<br>20070312-18:14:31 (24026) host: localhost<br>20070312-18:14:31 (24026) acl: denyallallowlocalhost 127.0.0.1orderdeny,allow<br>20070312-18:14:31 (24026) rails_env: development<br>20070312-18:14:31 (24026) timer_sleep: 60
<br>20070312-18:14:31 (24026) port: 22222<br>20070312-18:14:31 (24026) pool_size: 5<br>20070312-18:14:31 (24028) Starting worker: <span name="st">BackgrounDRb</span>::Worker::WorkerLogger backgroundrb_logger (backgroundrb_logger) ()
<br>20070312-18:14:31 (24028) Starting worker: <span name="st">BackgrounDRb</span>::Worker::WorkerResults backgroundrb_results (backgroundrb_results) ()
<br>20070312-18:14:31 (24028) Loading Worker Class File: /home/david/redclay/lib/workers/variant_addition_worker.rb<br>20070312-18:14:31 (24028) Loading Worker Class File: /home/david/redclay/lib/workers/variant_remove_worker.rb
<br>20070312-18:14:31 (24028) Loading Worker Class File: /home/david/redclay/lib/workers/variant_subtraction_worker.rb<br>20070312-18:14:31 (24028) Loading Worker Class File: /home/david/redclay/lib/workers/variant_new_worker.rb
<br>20070312-18:14:31 (24028) Loading Worker Class File: /home/david/redclay/lib/workers/ebay_auction_worker.rb<br>20070312-18:14:31 (24028) Loading Sechedule: classebay_auction_workerargsjob_keyebay_auction_runner classebay_auction_workertrigger_args0 * * * * * *trigger_typecron_triggerjob_keyebay_auction_runner #<
<span name="st">BackgrounDRb</span>::CronTrigger:0xb73ae12c>
<br>20070312-18:15:00 (24028) Schedule triggered: #<struct #<Class:0xb7956b38> job=#<Proc:0xb79c1ac8@/home/david/redclay/vendor/plugins/<span name="st">backgroundrb</span>/server/lib/<span name="st">
backgroundrb</span>/middleman.rb:355>, trigger=#<<span name="st">BackgrounDRb</span>::CronTrigger:0xb73ae12c @hour=0..23, @year=nil, @day=1..31, @cron_expr="0 * * * * * *", @sec=[0], @wday=0..6, @min=0..59, @month=1..12>, earliest=Mon Mar 12 18:15:00 -0700 2007, last=Mon Mar 12 18:15:00 -0700 2007>
<br>20070312-18:15:01 (24028) Starting worker: ebay_auction_worker ebay_auction_runner (ebay_auction_worker_ebay_auction_runner) ()<br><br>....fast-forward 41 minutes.....<br><br>20070312-18:56:00 (24028) Starting worker: ebay_auction_worker ebay_auction_runner (ebay_auction_worker_ebay_auction_runner) ()
<br>20070312-18:57:00 (24028) Schedule triggered: #<struct #<Class:0xb7956b38> job=#<Proc:0xb79c1ac8@/home/david/redclay/vendor/plugins/<span name="st">backgroundrb</span>/server/lib/<span name="st">
backgroundrb</span>/middleman.rb:355>, trigger=#<<span name="st">BackgrounDRb</span>::CronTrigger:0xb73ae12c @hour=0..23, @year=nil, @day=1..31, @cron_expr="0 * * * * * *", @sec=[0], @wday=0..6, @min=0..59, @month=1..12>, earliest=Mon Mar 12 18:57:00 -0700 2007, last=Mon Mar 12 18:57:00 -0700 2007>
<br>20070312-18:57:00 (24028) failed to find slave socket - (RuntimeError)<br>20070312-18:57:00 (24028) /usr/lib/ruby/gems/1.8/gems/slave-1.2.0/lib/slave.rb:435:in `initialize'<br>20070312-18:57:00 (24028) /home/david/redclay/vendor/plugins/
<span name="st">backgroundrb</span>/server/lib/<span name="st">backgroundrb</span>/middleman.rb:210:in `new'
<br>20070312-18:57:00 (24028) /home/david/redclay/vendor/plugins/<span name="st">backgroundrb</span>/server/lib/<span name="st">backgroundrb</span>/middleman.rb:210:in `new_worker'
<br>20070312-18:57:00 (24028) /home/david/redclay/vendor/plugins/<span name="st">backgroundrb</span>/server/lib/<span name="st">backgroundrb</span>/thread_pool.rb:36:in `dispatch'
<br>20070312-18:57:00 (24028) /home/david/redclay/vendor/plugins/<span name="st">backgroundrb</span>/server/lib/<span name="st">backgroundrb</span>/thread_pool.rb:22:in `initialize'
<br>20070312-18:57:00 (24028) /home/david/redclay/vendor/plugins/<span name="st">backgroundrb</span>/server/lib/<span name="st">backgroundrb</span>/thread_pool.rb:22:in `new'
<br>20070312-18:57:00 (24028) /home/david/redclay/vendor/plugins/<span name="st">backgroundrb</span>/server/lib/<span name="st">backgroundrb</span>/thread_pool.rb:22:in `dispatch'
<br>20070312-18:57:00 (24028) /home/david/redclay/vendor/plugins/<span name="st">backgroundrb</span>/server/lib/<span name="st">backgroundrb</span>/middleman.rb:199:in `new_worker'
<br>20070312-18:57:00 (24028) /home/david/redclay/vendor/plugins/<span name="st">backgroundrb</span>/server/lib/<span name="st">backgroundrb</span>/middleman.rb:357:in `schedule_worker'
<br>20070312-18:57:00 (24028) /home/david/redclay/vendor/plugins/<span name="st">backgroundrb</span>/server/lib/<span name="st">backgroundrb</span>/scheduler.rb:46:in `call'
<br>20070312-18:57:00 (24028) /home/david/redclay/vendor/plugins/<span name="st">backgroundrb</span>/server/lib/<span name="st">backgroundrb</span>/scheduler.rb:46:in `run'<br>20070312-18:57:00 (24028) /home/david/redclay/vendor/plugins/
<span name="st">backgroundrb</span>/server/lib/<span name="st">backgroundrb</span>/scheduler.rb:40:in `each'
<br>20070312-18:57:00 (24028) /home/david/redclay/vendor/plugins/<span name="st">backgroundrb</span>/server/lib/<span name="st">backgroundrb</span>/scheduler.rb:40:in `run'<br>20070312-18:57:00 (24028) /home/david/redclay/vendor/plugins/
<span name="st">backgroundrb</span>/server/lib/<span name="st">backgroundrb</span>/scheduler.rb:35:in `loop'
<br>20070312-18:57:00 (24028) /home/david/redclay/vendor/plugins/<span name="st">backgroundrb</span>/server/lib/<span name="st">backgroundrb</span>/scheduler.rb:35:in `run'<br>20070312-18:57:00 (24028) /home/david/redclay/vendor/plugins/
<span name="st">backgroundrb</span>/server/lib/<span name="st">backgroundrb</span>/scheduler.rb:95:in `run'
<br>20070312-18:57:00 (24028) /home/david/redclay/vendor/plugins/<span name="st">backgroundrb</span>/server/lib/<span name="st">backgroundrb</span>/scheduler.rb:94:in `initialize'
<br>20070312-18:57:00 (24028) /home/david/redclay/vendor/plugins/<span name="st">backgroundrb</span>/server/lib/<span name="st">backgroundrb</span>/scheduler.rb:94:in `new'
<br>20070312-18:57:00 (24028) /home/david/redclay/vendor/plugins/<span name="st">backgroundrb</span>/server/lib/<span name="st">backgroundrb</span>/scheduler.rb:94:in `run'<br>20070312-18:57:00 (24028) /home/david/redclay/vendor/plugins/
<span name="st">backgroundrb</span>/server/lib/<span name="st">backgroundrb</span>/middleman.rb:106:in `setup'
<br>20070312-18:57:00 (24028) /home/david/redclay/vendor/plugins/<span name="st">backgroundrb</span>/server/lib/backgroundrb_server.rb:306:in `run'<br>20070312-18:57:00 (24028) /usr/lib/ruby/gems/1.8/gems/daemons-
1.0.4/lib/daemons/application.rb:186:in `call'
<br>20070312-18:57:00 (24028) /usr/lib/ruby/gems/1.8/gems/daemons-1.0.4/lib/daemons/application.rb:186:in `start_proc'<br>20070312-18:57:00 (24028) /usr/lib/ruby/gems/1.8/gems/daemons-1.0.4/lib/daemons/daemonize.rb:192:in `call'
<br>20070312-18:57:00 (24028) /usr/lib/ruby/gems/1.8/gems/daemons-1.0.4/lib/daemons/daemonize.rb:192:in `call_as_daemon'<br>20070312-18:57:00 (24028) /usr/lib/ruby/gems/1.8/gems/daemons-1.0.4/lib/daemons/application.rb:190:in `start_proc'
<br>20070312-18:57:00 (24028) /usr/lib/ruby/gems/1.8/gems/daemons-1.0.4/lib/daemons/application.rb:226:in `start'<br>20070312-18:57:00 (24028) /usr/lib/ruby/gems/1.8/gems/daemons-1.0.4/lib/daemons/controller.rb:69:in `run'
<br>20070312-18:57:00 (24028) /usr/lib/ruby/gems/1.8/gems/daemons-1.0.4/lib/daemons.rb:182:in `run_proc'<br>20070312-18:57:00 (24028) /usr/lib/ruby/gems/1.8/gems/daemons-1.0.4/lib/daemons/cmdline.rb:94:in `call'<br>
20070312-18:57:00 (24028) /usr/lib/ruby/gems/1.8/gems/daemons-1.0.4/lib/daemons/cmdline.rb:94:in `catch_exceptions'<br>20070312-18:57:00 (24028) /usr/lib/ruby/gems/1.8/gems/daemons-1.0.4/lib/daemons.rb:181:in `run_proc'
<br>20070312-18:57:00 (24028) /home/david/redclay/vendor/plugins/<span name="st">backgroundrb</span>/server/lib/backgroundrb_server.rb:301:in `run'<br>20070312-18:57:00 (24028) script/<span name="st">
backgroundrb</span>:29<br>--------------------<br><br><br>It looks like it is dying because a Slave process has somehow killed itself in that timespan. Can I do something about this? I need this worker to be running all the time. Is there something I can do in my code to keep
<span name="st">backgroundrb</span> processes from dying? I'd like to figure out how we can resolve this, because it looks like it might be a much more serious problem in the <span name="st">
backgroundrb</span> framework. That said, I want to express my gratitude for this framework existing -- I wouldn't have been able to come this far without it. I hope we can figure this out!
<br><br>Thanks,<br><span>David Balatero<br>
</span></blockquote></div><br>
</span></div></blockquote></div><br>