Say I have a job that runs every minute, but it takes longer than a minute to execute. Will it start a new job every minute? If it does, then how would I make a job that sleeps for a certain amount of time, then restarts? I have a job that could take an hour or two to complete, and I don''t want to have multiple copies of that job running at the same time. Joe
On Thu, 2007-12-20 at 23:17 -0800, Joe Van Dyk wrote:> Say I have a job that runs every minute, but it takes longer than a > minute to execute. Will it start a new job every minute? > > If it does, then how would I make a job that sleeps for a certain > amount of time, then restarts? I have a job that could take an hour > or two to complete, and I don''t want to have multiple copies of that > job running at the same time.If your job takes longer than a minute to complete and yet you are scheduling it with an interval of one minute and you don''t want it to run concurrently, seems like an mutually exclusive case. :)
On Dec 21, 2007 2:07 AM, hemant kumar <gethemant at gmail.com> wrote:> On Thu, 2007-12-20 at 23:17 -0800, Joe Van Dyk wrote: > > Say I have a job that runs every minute, but it takes longer than a > > minute to execute. Will it start a new job every minute? > > > > If it does, then how would I make a job that sleeps for a certain > > amount of time, then restarts? I have a job that could take an hour > > or two to complete, and I don''t want to have multiple copies of that > > job running at the same time. > > > If your job takes longer than a minute to complete and yet you are > scheduling it with an interval of one minute and you don''t want it to > run concurrently, seems like an mutually exclusive case. :)Well, say it normally takes 10 seconds, but then sometimes, due to the internet being really slow, it takes 5 minutes. I don''t want to be running multiple jobs in that scenario, I want to wait for the slow job to finish before starting the next one.
On Dec 21, 2007 2:26 AM, Joe Van Dyk <joevandyk at gmail.com> wrote:> On Dec 21, 2007 2:07 AM, hemant kumar <gethemant at gmail.com> wrote: > > On Thu, 2007-12-20 at 23:17 -0800, Joe Van Dyk wrote: > > > Say I have a job that runs every minute, but it takes longer than a > > > minute to execute. Will it start a new job every minute? > > > > > > If it does, then how would I make a job that sleeps for a certain > > > amount of time, then restarts? I have a job that could take an hour > > > or two to complete, and I don''t want to have multiple copies of that > > > job running at the same time. > > > > > > If your job takes longer than a minute to complete and yet you are > > scheduling it with an interval of one minute and you don''t want it to > > run concurrently, seems like an mutually exclusive case. :) > > Well, say it normally takes 10 seconds, but then sometimes, due to the > internet being really slow, it takes 5 minutes. I don''t want to be > running multiple jobs in that scenario, I want to wait for the slow > job to finish before starting the next one. >Is it a single worker that''s always running and periodically kicks off the job? If so, you could set a variable when the job starts - something like: def create @in_job = false end def start_the_job if @in_job return false else @in_job = true # run the job # might be in this part for a while @in_job = false end end - Jason L. -- My Rails and Linux Blog: http://offtheline.net