[Backgroundrb-devel] Scheduling same worker/method at differenttimes with different args
Scott Ward
scott at shefield.com
Tue Jan 29 11:52:00 EST 2008
Cool. That worked like a charm.
-----Original Message-----
From: backgroundrb-devel-bounces at rubyforge.org
[mailto:backgroundrb-devel-bounces at rubyforge.org] On Behalf Of Meng Kuan
Sent: Monday, January 28, 2008 6:34 PM
To: backgroundrb-devel at rubyforge.org
Subject: Re: [Backgroundrb-devel] Scheduling same worker/method at
differenttimes with different args
On 29 Jan 2008, at 4:15 AM, hemant wrote:
> On Tue, Jan 29, 2008 at 1:02 AM, Scott Ward <scott at shefield.com>
> wrote:
>> I need to run the same worker's method twice per day with different
>> arguments. Unfortunately, only the second entry in the schedule is
>> firing.
>>
>> I created an experimental worker to verify this:
>>
>> Worker:
>> class ExperimentWorker < BackgrounDRb::MetaWorker
>> set_worker_name :experiment_worker
>> def create(args = nil)
>> # this method is called, when worker is loaded for the first time
>> end
>>
>> def experiment(args = {})
>> logger.info "#{Time.now} - Experiment fired at #{args
>> [:repeat_second]} second mark."
>> end
>> end
>>
>>
>> In backgroundrb.yml:
>> :schedules:
>> :experiment_worker:
>> :experiment:
>> :trigger_args: "0 * * * * * *"
>> :data:
>> :repeat_second: zero
>> :experiment:
>> :trigger_args: "30 * * * * * *"
>> :data:
>> :repeat_second: thirty
>>
>>
>> In the log, I only see "Experiment fired at thirty second mark."
>> Why isn't
>> the first entry for experiment worker firing? Perhaps, I have
>> this set up
>> wrong?
>
>
> Because it needs different method names for such a firing. As you
> might have noticed, currently you have two values with same key in
> configuration file.
>
You can try using alias_method to get a different method name:
alias_method :experiment2, :experiment
Note: the alias_method call should come _after_ the actual
"experiment" method definition.
Then your backgroundrb.yml becomes:
:schedules:
:experiment_worker:
:experiment:
:trigger_args: "0 * * * * * *"
:data:
:repeat_second: zero
:experiment2:
:trigger_args: "30 * * * * * *"
:data:
:repeat_second: thirty
_______________________________________________
Backgroundrb-devel mailing list
Backgroundrb-devel at rubyforge.org
http://rubyforge.org/mailman/listinfo/backgroundrb-devel
More information about the Backgroundrb-devel
mailing list