[Backgroundrb-devel] {worker} after :end-time worker freaks out

hemant kumar gethemant at gmail.com
Sun Jan 13 15:03:24 EST 2008


Hi Matthias,

On Sun, 2008-01-13 at 19:21 +0100, Matthias Heigl wrote:
> Hi all,
> 
> i was using bdrb a while ago and it wasn't stable enough in version 
> 0.2.1 for doing the job - it loss jobs or did execute only the first one 
> invoked and so on.
> 
> Now i gave the new version a try and i found a bug at playing around.
> 
> When i start a worker_method over the normal Unix scheduler bdrb will 
> start as much as possible the worker_method after the :end-time is reached.
> 
> I verifyed the behavior on two different boxes:
> 
> 1. Mac OS X 10.5.1
> 
> 2. Debian Lenny
> 
> Both using Rub 1.8.6 an backgroundrb 1.0.
> 
> My Test-Files
> 
> backgroundrb.yml
> - - - - - -
> :backgroundrb:
>    :port: 11006
>    :ip: localhost
>    :environment: development
> :schedules:
>    :mytest_worker:
>      :doit:
>        :trigger_args:
>          :start: <%= Time.now + 1.seconds %>
>          :end: <%= Time.now + 1.minute %>
>          :repeat_interval: <%= 10.seconds %>
> - - - - - -
> 
> mytest_worker.rb
> - - - - - -
> class MytestWorker < BackgrounDRb::MetaWorker
>    set_worker_name :mytest_worker
>    def create(args = nil)
>      # this method is called, when worker is loaded for the first time
>      @counter=0
>    end
>    def doit
>      @counter += 1
>      logger.debug("mytest: doit #{@counter} - #{Time.now}")
>    end
> end
> - - - - - -
> 
> After i start bdrb with ./script/backgroundrb start my backgroundrb.log 
> looks like this:
> - - - - - -
> mytest_worker started
> Schedules for worker loaded
> mytest: doit 1 - Sun Jan 13 19:07:19 +0100 2008
> mytest: doit 2 - Sun Jan 13 19:07:29 +0100 2008
> mytest: doit 3 - Sun Jan 13 19:07:39 +0100 2008
> mytest: doit 4 - Sun Jan 13 19:07:49 +0100 2008
> mytest: doit 5 - Sun Jan 13 19:07:59 +0100 2008
> mytest: doit 6 - Sun Jan 13 19:08:09 +0100 2008
> mytest: doit 7 - Sun Jan 13 19:08:19 +0100 2008
> mytest: doit 8 - Sun Jan 13 19:08:19 +0100 2008
> mytest: doit 9 - Sun Jan 13 19:08:19 +0100 2008
> mytest: doit 10 - Sun Jan 13 19:08:19 +0100 2008
> mytest: doit 11 - Sun Jan 13 19:08:19 +0100 2008
> mytest: doit 12 - Sun Jan 13 19:08:19 +0100 2008
> mytest: doit 13 - Sun Jan 13 19:08:19 +0100 2008
> mytest: doit 14 - Sun Jan 13 19:08:19 +0100 2008
> mytest: doit 15 - Sun Jan 13 19:08:19 +0100 2008
> mytest: doit 16 - Sun Jan 13 19:08:19 +0100 2008
> mytest: doit 17 - Sun Jan 13 19:08:19 +0100 2008
> mytest: doit 18 - Sun Jan 13 19:08:19 +0100 2008
> mytest: doit 19 - Sun Jan 13 19:08:19 +0100 2008
> mytest: doit 20 - Sun Jan 13 19:08:19 +0100 2008
> mytest: doit 21 - Sun Jan 13 19:08:19 +0100 2008
> mytest: doit 22 - Sun Jan 13 19:08:19 +0100 2008
> mytest: doit 23 - Sun Jan 13 19:08:19 +0100 2008
> mytest: doit 24 - Sun Jan 13 19:08:19 +0100 2008
> mytest: doit 25 - Sun Jan 13 19:08:19 +0100 2008
> mytest: doit 26 - Sun Jan 13 19:08:19 +0100 2008
> mytest: doit 27 - Sun Jan 13 19:08:19 +0100 2008
> mytest: doit 28 - Sun Jan 13 19:08:19 +0100 2008
> ... (about 180 per second)
> - - - - - -
> 
> For my projekt i didn't need the Unix scheduler style, but while testing 
> if the new version will meet the requirements i noticed this.
> 
> Maybe i did something wrong, but in the version 0.2.1 the :end-time 
> works - i think.
> 
> My Question about best practise will be part of my next mail to keep 
> apart the issues.
> 
> Cheers,

Yes, I am able to reproduce the error and hence I have fixed it in trunk as well as 1.0.1 release.

I will suggest you to use 1.0.1 release since it contains many fixes over 1.0 release:

http://svn.devjavu.com/backgroundrb/tags/release-1.0.1/





More information about the Backgroundrb-devel mailing list