Package com.sun.enterprise.v3.admin
Class JobManagerService
- java.lang.Object
-
- com.sun.enterprise.v3.admin.JobManagerService
-
- All Implemented Interfaces:
JobManager
,EventListener
,org.glassfish.hk2.api.PostConstruct
@Service(name="job-manager") @Singleton public class JobManagerService extends Object implements JobManager, org.glassfish.hk2.api.PostConstruct, EventListener
This is the implementation for the JobManagerService The JobManager is responsible 1. generating unique ids for jobs 2. serving as a registry for jobs 3. creating threadpools for jobs 4.removing expired jobs- Author:
- Martin Mares, Bhakti Mehta
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.glassfish.api.event.EventListener
EventListener.Event<T>
-
Nested classes/interfaces inherited from interface org.glassfish.api.admin.JobManager
JobManager.Checkpoint
-
-
Field Summary
Fields Modifier and Type Field Description protected static LocalStringManagerImpl
adminStrings
protected jakarta.xml.bind.JAXBContext
jaxbContext
protected File
jobsFile
-
Constructor Summary
Constructors Constructor Description JobManagerService()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addToCompletedJobs(CompletedJob job)
void
checkpoint(AdminCommandContext context, Serializable data)
Stores current command state.void
checkpoint(AdminCommand command, AdminCommandContext context)
Stores current command state.void
checkpointAttachement(String jobId, String attachId, Serializable data)
long
convert(String input)
void
deleteCheckpoint(File parentDir, String jobId)
void
event(EventListener.Event event)
Process a Glassfish/Payara eventJob
get(String id)
This will return a job associated with the idJobInfo
getCompletedJobForId(String id)
This is a convenience method to get a completed job with an idJobInfo
getCompletedJobForId(String id, File file)
JobInfos
getCompletedJobs(File jobsFile)
This will load the jobs which have already completed and persisted in the jobs.xmlConcurrentHashMap<String,CompletedJob>
getCompletedJobsInfo()
ArrayList<JobInfo>
getExpiredJobs(File file)
This will return a list of jobs which have crossed the JOBS_RETENTION_PERIOD and need to be purgedIterator<Job>
getJobs()
This returns all the jobs in the registryFile
getJobsFile()
This is used to get the jobs file for a jobString
getNewId()
This will return a new id which is unusedConcurrentHashMap<String,CheckpointHelper.CheckpointFilename>
getRetryableJobsInfo()
ExecutorService
getThreadPool()
JobManager.Checkpoint
loadCheckpoint(String jobId, Payload.Outbound outbound)
<T extends Serializable>
TloadCheckpointAttachement(String jobId, String attachId)
Serializable
loadCheckpointData(String jobId)
Load checkpoint related data.void
postConstruct()
JobInfos
purgeCompletedJobForId(String id)
This is used to purge a completed job whose id is providedJobInfos
purgeCompletedJobForId(String jobId, File file)
This method looks for the completed jobs and purges a job which is marked with the jobIdvoid
purgeJob(String id)
This will remove the job from the registryprotected void
reapCompletedJobs(File file)
void
registerJob(Job job)
This adds the jobsvoid
removeFromCompletedJobs(String id)
-
-
-
Field Detail
-
adminStrings
protected static final LocalStringManagerImpl adminStrings
-
jaxbContext
protected jakarta.xml.bind.JAXBContext jaxbContext
-
jobsFile
protected File jobsFile
-
-
Method Detail
-
getNewId
public String getNewId()
This will return a new id which is unused- Specified by:
getNewId
in interfaceJobManager
- Returns:
-
getCompletedJobForId
public JobInfo getCompletedJobForId(String id)
Description copied from interface:JobManager
This is a convenience method to get a completed job with an id- Specified by:
getCompletedJobForId
in interfaceJobManager
- Parameters:
id
- the completed Job whose id needs to be looked up- Returns:
- the completed Job
-
registerJob
public void registerJob(Job job) throws IllegalArgumentException
This adds the jobs- Specified by:
registerJob
in interfaceJobManager
- Parameters:
job
-- Throws:
IllegalArgumentException
-
getJobs
public Iterator<Job> getJobs()
This returns all the jobs in the registry- Specified by:
getJobs
in interfaceJobManager
- Returns:
- The iterator of jobs
-
get
public Job get(String id)
This will return a job associated with the id- Specified by:
get
in interfaceJobManager
- Parameters:
id
- The job whose id matches- Returns:
-
getExpiredJobs
public ArrayList<JobInfo> getExpiredJobs(File file)
This will return a list of jobs which have crossed the JOBS_RETENTION_PERIOD and need to be purged- Returns:
- list of jobs to be purged
-
convert
public long convert(String input)
-
purgeJob
public void purgeJob(String id)
This will remove the job from the registry- Specified by:
purgeJob
in interfaceJobManager
- Parameters:
id
- The job id of the job to be removed
-
getThreadPool
public ExecutorService getThreadPool()
-
getCompletedJobs
public JobInfos getCompletedJobs(File jobsFile)
This will load the jobs which have already completed and persisted in the jobs.xml- Specified by:
getCompletedJobs
in interfaceJobManager
- Returns:
- JobsInfos which contains information about completed jobs
-
purgeCompletedJobForId
public JobInfos purgeCompletedJobForId(String jobId, File file)
This method looks for the completed jobs and purges a job which is marked with the jobId- Parameters:
jobId
- the job to purge- Returns:
- the new list of completed jobs
-
purgeCompletedJobForId
public JobInfos purgeCompletedJobForId(String id)
Description copied from interface:JobManager
This is used to purge a completed job whose id is provided- Specified by:
purgeCompletedJobForId
in interfaceJobManager
- Parameters:
id
- the id of the Job which needs to be purged- Returns:
- the new list of completed jobs
-
postConstruct
public void postConstruct()
- Specified by:
postConstruct
in interfaceorg.glassfish.hk2.api.PostConstruct
-
getJobsFile
public File getJobsFile()
Description copied from interface:JobManager
This is used to get the jobs file for a job- Specified by:
getJobsFile
in interfaceJobManager
- Returns:
- the location of the job file
-
addToCompletedJobs
public void addToCompletedJobs(CompletedJob job)
-
removeFromCompletedJobs
public void removeFromCompletedJobs(String id)
-
getCompletedJobsInfo
public ConcurrentHashMap<String,CompletedJob> getCompletedJobsInfo()
-
getRetryableJobsInfo
public ConcurrentHashMap<String,CheckpointHelper.CheckpointFilename> getRetryableJobsInfo()
-
checkpoint
public void checkpoint(AdminCommandContext context, Serializable data) throws IOException
Description copied from interface:JobManager
Stores current command state.- Specified by:
checkpoint
in interfaceJobManager
- Throws:
IOException
-
checkpoint
public void checkpoint(AdminCommand command, AdminCommandContext context) throws IOException
Description copied from interface:JobManager
Stores current command state.- Specified by:
checkpoint
in interfaceJobManager
- Throws:
IOException
-
checkpointAttachement
public void checkpointAttachement(String jobId, String attachId, Serializable data) throws IOException
- Throws:
IOException
-
loadCheckpointAttachement
public <T extends Serializable> T loadCheckpointAttachement(String jobId, String attachId) throws IOException, ClassNotFoundException
- Throws:
IOException
ClassNotFoundException
-
loadCheckpointData
public Serializable loadCheckpointData(String jobId) throws IOException, ClassNotFoundException
Description copied from interface:JobManager
Load checkpoint related data.- Specified by:
loadCheckpointData
in interfaceJobManager
- Throws:
IOException
ClassNotFoundException
-
loadCheckpoint
public JobManager.Checkpoint loadCheckpoint(String jobId, Payload.Outbound outbound) throws IOException, ClassNotFoundException
- Throws:
IOException
ClassNotFoundException
-
reapCompletedJobs
protected void reapCompletedJobs(File file)
-
event
public void event(EventListener.Event event)
Description copied from interface:EventListener
Process a Glassfish/Payara event- Specified by:
event
in interfaceEventListener
-
-