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

Matthias Heigl m.heigl at gmx.net
Mon Jan 14 18:02:52 EST 2008


hemant kumar schrieb:
> 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/
> 

I installed the 1.0.1 release and everything looks fine now.

This fix was really quick!

Cheers,

Matze



More information about the Backgroundrb-devel mailing list