Matthias Heigl
2008-Jan-13 18:21 UTC
[Backgroundrb-devel] {worker} after :end-time worker freaks out
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, Matze
hemant kumar
2008-Jan-13 20:03 UTC
[Backgroundrb-devel] {worker} after :end-time worker freaks out
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/
Matthias Heigl
2008-Jan-14 23:02 UTC
[Backgroundrb-devel] {worker} after :end-time worker freaks out
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