Package org.jeasy.batch.core.job
Class JobExecutor
- java.lang.Object
-
- org.jeasy.batch.core.job.JobExecutor
-
- All Implemented Interfaces:
java.lang.AutoCloseable
public class JobExecutor extends java.lang.Object implements java.lang.AutoCloseable
Main class to executeJob
s. Job executors must be explicitly shutdown usingshutdown()
if not used in a try-with-resources bloc- Author:
- Mahmoud Ben Hassine ([email protected])
-
-
Constructor Summary
Constructors Constructor Description JobExecutor()
Create a job executor.JobExecutor(int nbWorkers)
Create a job executor.JobExecutor(java.util.concurrent.ExecutorService executorService)
Create a job executor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
awaitTermination(long timeout, java.util.concurrent.TimeUnit unit)
Wait for jobs to terminate.void
close()
JobReport
execute(Job job)
Execute a job synchronously.void
shutdown()
Shutdown the job executor.java.util.concurrent.Future<JobReport>
submit(Job job)
Submit a job for asynchronous execution.java.util.List<java.util.concurrent.Future<JobReport>>
submitAll(java.util.List<Job> jobs)
Submit jobs for execution.java.util.List<java.util.concurrent.Future<JobReport>>
submitAll(Job... jobs)
Submit jobs for execution.
-
-
-
Constructor Detail
-
JobExecutor
public JobExecutor()
Create a job executor. The number of workers will be set to the number of available processors.
-
JobExecutor
public JobExecutor(int nbWorkers)
Create a job executor.- Parameters:
nbWorkers
- number of worker threads
-
JobExecutor
public JobExecutor(java.util.concurrent.ExecutorService executorService)
Create a job executor.- Parameters:
executorService
- to use to execute jobs
-
-
Method Detail
-
execute
public JobReport execute(Job job)
Execute a job synchronously.- Parameters:
job
- to execute- Returns:
- the job report
-
submit
public java.util.concurrent.Future<JobReport> submit(Job job)
Submit a job for asynchronous execution.- Parameters:
job
- to execute- Returns:
- a future of the job report
-
submitAll
public java.util.List<java.util.concurrent.Future<JobReport>> submitAll(Job... jobs)
Submit jobs for execution.- Parameters:
jobs
- to execute- Returns:
- the list of job reports in the same order of submission
-
submitAll
public java.util.List<java.util.concurrent.Future<JobReport>> submitAll(java.util.List<Job> jobs)
Submit jobs for execution.- Parameters:
jobs
- to execute- Returns:
- the list of job reports in the same order of submission
-
shutdown
public void shutdown()
Shutdown the job executor.
-
awaitTermination
public void awaitTermination(long timeout, java.util.concurrent.TimeUnit unit)
Wait for jobs to terminate.- Parameters:
timeout
- to wait forunit
- of the timeout
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Throws:
java.io.IOException
-
-