From: Kevin Sallee <kevinsallee@(email surpressed)>
Subject: simple priority question
   Date: Thu, 27 Oct 2011 17:59:06 -0400
Msg# 2140
View Complete Thread (3 articles) | All Threads
Last Next
Hello: i have some jobs that are executed on my farm, and i would like another job i'm sending to be executed only when all the other jobs i sent are finished. how do i do that without specifying a dependency?

   From: Greg Ercolano <erco@(email surpressed)>
Subject: Re: simple priority question
   Date: Fri, 28 Oct 2011 12:09:44 -0400
Msg# 2141
View Complete Thread (3 articles) | All Threads
Last Next
On 10/27/11 14:59, Kevin Sallee wrote:
> Hello: i have some jobs that are executed on my farm, and i would like 
> another job i'm sending to be executed only when all the other jobs i 
> sent are finished. how do i do that without specifying a dependency?

Hi Kevin,

	Set the job to a lower priority than the others, and it shouldn't
	pick up unless the other jobs can't use any more cpus. (eg. if
	your job is @1 and the others are @2 or higher, those other jobs
	will always win cpus if they aren't constrained by some limit)

	This does mean, however, it may start rendering while the
	other jobs are still finishing their renders.

	If you really want that last job to start /only/ when the
	other jobs have /completely/ finished (and /not/ start even if
	there are cpus available but the other jobs are still
	working on rendering their last few frames), then 'waitfor <jobid> <jobid..>'
	would be the way to go, as that really is a dependency type
	of behavior.

	To get what you want without a dependency, I think you'd have
	to write a custom submit script that submits your job in the
	Pause state, and polls the network with 'rush -laj' until
	there are no Run jobs, then it would unpause the job to start it.
	I can suggest code that would do this, but it's an odd case.

	If you think that would be a handy feature, I could investigate
	adding such a thing.
	


-- 
Greg Ercolano, erco@(email surpressed)
Seriss Corporation
Rush Render Queue, http://seriss.com/rush/
Tel: (Tel# suppressed)ext.23
Fax: (Tel# suppressed)
Cel: (Tel# suppressed)


   From: Kevin Sallee <kevinsallee@(email surpressed)>
Subject: Re: simple priority question
   Date: Thu, 03 Nov 2011 18:31:30 -0400
Msg# 2143
View Complete Thread (3 articles) | All Threads
Last Next
On 10/28/2011 11:09 AM, Greg Ercolano wrote:
On 10/27/11 14:59, Kevin Sallee wrote:
Hello: i have some jobs that are executed on my farm, and i would like
another job i'm sending to be executed only when all the other jobs i
sent are finished. how do i do that without specifying a dependency?

Hi Kevin,

	Set the job to a lower priority than the others, and it shouldn't
	pick up unless the other jobs can't use any more cpus. (eg. if
	your job is @1 and the others are @2 or higher, those other jobs
	will always win cpus if they aren't constrained by some limit)

	This does mean, however, it may start rendering while the
	other jobs are still finishing their renders.

	If you really want that last job to start /only/ when the
	other jobs have /completely/ finished (and /not/ start even if
	there are cpus available but the other jobs are still
	working on rendering their last few frames), then 'waitfor<jobid>  <jobid..>'
	would be the way to go, as that really is a dependency type
	of behavior.

	To get what you want without a dependency, I think you'd have
	to write a custom submit script that submits your job in the
	Pause state, and polls the network with 'rush -laj' until
	there are no Run jobs, then it would unpause the job to start it.
	I can suggest code that would do this, but it's an odd case.

	If you think that would be a handy feature, I could investigate
	adding such a thing.
	


Hi greg,

sorry i didn't see your answer before... I already found a workaround as you said, a little script that uses rush -lj. It's just i'm not sending rendering jobs but animation baking jobs. So i have this scene where you can bake animation for all assets, and then build a custom scene with all the rigged assets references switched to cached references. For the scene building, i want to wait for all the baking jobs to be finished. Since it's user-based, i used rush -lj instead of rush -laj. It's just using time.sleep if baking jobs (identified by their titles) sent by the user are not finished. It's really an odd case so no need to dig it much more. Thank you for your answer though

Kevin