2.17.2: 2011-06-17

net.sf.basedb.clients.jobagent.slotmanager
Class InternalSlotManager

java.lang.Object
  extended by net.sf.basedb.clients.jobagent.slotmanager.InternalSlotManager
All Implemented Interfaces:
SlotManager
Direct Known Subclasses:
MasterSlotManager

public class InternalSlotManager
extends Object
implements SlotManager

The internal slot manager assigns slot to jobs based on their estimated execution time. The configuration file gives the maximum number of slots for each execution time:

Since:
2.16
Author:
Nicklas
Last modified
$Date: 2010-10-19 13:02:17 +0200 (Tue, 19 Oct 2010) $

Field Summary
private  Agent agent
           
private static Logger log
           
private  int[] maxSlots
           
private  int[] usedSlots
           
 
Constructor Summary
InternalSlotManager()
           
 
Method Summary
 void close()
          This method is called when the job agent is shutting down.
protected  Agent getAgent()
          Get the job agent this slot manager belongs to.
protected  Slot getSlot(Job.ExecutionTime estimated)
          Get a slot for a job with the given estimated execution time.
 Slot getSlot(Job job)
          Get a slot for the specified job.
 void init(Agent agent)
          Initialize the slot manager.
 void releaseSlot(Slot slot)
          Called by the job agent when the job has finished exeuting.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

private static final Logger log

agent

private Agent agent

maxSlots

private int[] maxSlots

usedSlots

private int[] usedSlots
Constructor Detail

InternalSlotManager

public InternalSlotManager()
Method Detail

init

public void init(Agent agent)
Description copied from interface: SlotManager
Initialize the slot manager. This method is called once when the job agent is starting up. The slot manager may read configuration settings, and intialize local resources.

Specified by:
init in interface SlotManager
Parameters:
agent - The job agent

close

public void close()
Description copied from interface: SlotManager
This method is called when the job agent is shutting down. The slot manager should clean up any resources it is using.

Specified by:
close in interface SlotManager

getSlot

public Slot getSlot(Job job)
Description copied from interface: SlotManager
Get a slot for the specified job. If no free slot is available null is returned.

Specified by:
getSlot in interface SlotManager
Parameters:
job - The job that the job agent wants to execute
Returns:
A slot or null if no slot is available

releaseSlot

public void releaseSlot(Slot slot)
Description copied from interface: SlotManager
Called by the job agent when the job has finished exeuting.

Specified by:
releaseSlot in interface SlotManager
Parameters:
slot - The slot that was assigned to the job

getAgent

protected Agent getAgent()
Get the job agent this slot manager belongs to.

See Also:
init(Agent)

getSlot

protected Slot getSlot(Job.ExecutionTime estimated)
Get a slot for a job with the given estimated execution time. If no slot is available at the specified execution time, longer times are searched. If all slots are taken, null is returned.

Parameters:
estimated - The estimated execution time of the slot
Returns:
A slot or null if no slot is available

2.17.2: 2011-06-17