Class RemoteSlotManager
java.lang.Object
net.sf.basedb.clients.jobagent.slotmanager.RemoteSlotManager
- All Implemented Interfaces:
SlotManager
public class RemoteSlotManager extends Object implements SlotManager
Slot manager implementation that requests slots from another
job agent. The other job agent should be using the
MasterSlotManager
.
Communication between the job agents is made on the remote control
port on the master job agent. Make sure that the master slot manager
allows connections from this host by including it's ip address in the
'agent.remotecontrol' setting.
Configuration options for this slot manager:
- agent.slotmanager.remote.server: The host name/ip of the master job agent
- agent.slotmanager.remote.port: The port number of the remote control port on the master job agent.
- Since:
- 2.16
- Author:
- Nicklas
- Last modified
- $Date: 2014-04-09 14:21:20 +0200 (on, 09 apr 2014) $
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
RemoteSlotManager.RemoteSlotPinger
Task that is scheduled at regular intervals to send ping commands to the remote host. -
Field Summary
Fields Modifier and Type Field Description private Agent
agent
private int
connectTimeout
private static org.slf4j.Logger
log
private TimerTask
pingerTask
private String
remoteHost
private int
remotePort
private Map<String,Slot>
remoteSlots
-
Constructor Summary
Constructors Constructor Description RemoteSlotManager()
-
Method Summary
Modifier and Type Method Description void
close()
This method is called when the job agent is shutting down.Slot
getSlot(Job job)
Get a slot for the specified job.void
init(Agent agent)
Initialize the slot manager.(package private) void
pingRemoteSlots()
Ping the the remote host with all active slots.void
releaseSlot(Slot slot)
Called by the job agent when the job has finished exeuting.
-
Field Details
-
log
private static final org.slf4j.Logger log -
agent
-
remoteHost
-
remotePort
private int remotePort -
connectTimeout
private int connectTimeout -
remoteSlots
-
pingerTask
-
-
Constructor Details
-
RemoteSlotManager
public RemoteSlotManager()
-
-
Method Details
-
init
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 interfaceSlotManager
- 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 interfaceSlotManager
-
getSlot
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 interfaceSlotManager
- Parameters:
job
- The job that the job agent wants to execute- Returns:
- A slot or null if no slot is available
-
releaseSlot
Description copied from interface:SlotManager
Called by the job agent when the job has finished exeuting.- Specified by:
releaseSlot
in interfaceSlotManager
- Parameters:
slot
- The slot that was assigned to the job
-
pingRemoteSlots
void pingRemoteSlots()Ping the the remote host with all active slots.
-