public class MultiJob<P> extends Object
https://dzone.com/articles/think-twice-using-java-8,
https://www.baeldung.com/java-completablefuture| Modifier and Type | Class and Description |
|---|---|
static class |
MultiJob.MultiJobException
Internal exception
|
| Modifier and Type | Field and Description |
|---|---|
protected Executor |
executor
Executor contains a thread pool
|
protected Stream<P> |
params
Job arguments
|
protected Duration |
timeout
A timeout where a default duration is the one hour
|
| Modifier | Constructor and Description |
|---|---|
protected |
MultiJob(Stream<P> params) |
| Modifier and Type | Method and Description |
|---|---|
protected <R> Function<CompletableFuture<R>,R> |
createGrabber(Duration timeout) |
static <P> MultiJob<P> |
forParams(Iterable<P> params) |
static <P> MultiJob<P> |
forParams(List<P> params) |
static <P> MultiJob<P> |
forParams(P... params) |
static <P> MultiJob<P> |
forParams(Stream<P> params) |
protected <R> Function<P,CompletableFuture<R>> |
getAsync(Function<P,R> job)
Create an async function
|
<R> Stream<R> |
run(Function<P,R> job)
Get of single values where a nulls are excluded
|
<R> Stream<R> |
runToStream(Function<P,Stream<R>> job)
Get result of a Stream
|
MultiJob<P> |
setExecutor(Executor executor)
Assign an excecutor where the
null value activates a default executor. |
MultiJob<P> |
setNewFixedThreadPool(int nThreads)
Assign a new Fixed Thread Pool
|
MultiJob<P> |
setNewFixedThreadPool(int nThreads,
Duration keepAliveTime)
Assign a new Fixed Thread Pool
|
MultiJob<P> |
setTimeout(Duration timeout)
Set a timeout where a default duration is the one hour
|
public MultiJob<P> setTimeout(@Nonnull Duration timeout)
timeout - The maximum time to wait.public MultiJob<P> setExecutor(@Nullable Executor executor)
null value activates a default executor.executor - For examle: Executors.newFixedThreadPool(10)public MultiJob<P> setNewFixedThreadPool(int nThreads)
nThreads - the number of threads in the poolpublic MultiJob<P> setNewFixedThreadPool(int nThreads, @Nonnull Duration keepAliveTime)
nThreads - keepAliveTime - when the number of threads is greater than
the core, this is the maximum time that excess idle threads
will wait for new tasks before terminating.public <R> Stream<R> run(@Nonnull Function<P,R> job) throws MultiJob.MultiJobException
job - Job with a simple value resultMultiJob.MultiJobExceptionpublic <R> Stream<R> runToStream(@Nonnull Function<P,Stream<R>> job) throws MultiJob.MultiJobException
job - Job with a stream resultMultiJob.MultiJobExceptionprotected <R> Function<P,CompletableFuture<R>> getAsync(@Nonnull Function<P,R> job)
protected <R> Function<CompletableFuture<R>,R> createGrabber(@Nonnull Duration timeout)
timeout - The maximum time to waitCopyright 2015, Pavel Ponec