public class WorkflowProcessor<J extends WorkflowJob>
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static int |
availableCPU |
private long |
blockTime |
private java.lang.String[] |
childs |
private java.lang.String |
description |
private java.lang.Object |
environment |
private long |
execCount |
private long |
execTime |
private java.util.concurrent.ExecutorService |
executor |
private java.util.concurrent.atomic.AtomicInteger |
executorRunning |
private java.util.concurrent.BlockingQueue<J> |
input |
private int |
maxpoolsize |
private java.lang.String |
methodName |
private WorkflowProcessor<J> |
output |
private long |
passOnTime |
private static java.util.ArrayList<WorkflowProcessor<?>> |
processMonitor |
private java.lang.String |
processName |
Constructor and Description |
---|
WorkflowProcessor(java.lang.String name,
java.lang.String description,
java.lang.String[] childnames,
java.lang.Object env,
java.lang.String jobExecMethod,
int inputQueueSize,
WorkflowProcessor<J> output,
int maxpoolsize) |
Modifier and Type | Method and Description |
---|---|
void |
clear() |
void |
decExecutors()
the decExecutors method may only be called within the AbstractBlockingThread while loop!!
|
void |
enQueue(J in) |
long |
getBlockTime()
the block time is the time that a take() blocks until it gets a value
|
java.lang.String |
getChilds() |
java.lang.String |
getDescription() |
java.lang.Object |
getEnvironment() |
long |
getExecCount() |
long |
getExecTime()
the exec time is the complete time of the execution and processing of the value from take()
|
int |
getExecutors() |
int |
getMaxConcurrency() |
int |
getMaxQueueSize() |
java.lang.String |
getMethodName() |
java.lang.String |
getName() |
long |
getPassOnTime()
the passOn time is the time that a put() takes to enqueue a result value to the next queue
in case that the target queue is limited and may be full, this value may increase
|
int |
getQueueSize() |
protected void |
increaseJobTime(long time) |
void |
passOn(J next) |
static java.util.Iterator<WorkflowProcessor<?>> |
processes() |
boolean |
queueIsEmpty() |
private void |
relaxCapacity() |
void |
shutdown() |
J |
take() |
public static final int availableCPU
private static final java.util.ArrayList<WorkflowProcessor<?>> processMonitor
private java.util.concurrent.ExecutorService executor
private java.util.concurrent.atomic.AtomicInteger executorRunning
private java.util.concurrent.BlockingQueue<J extends WorkflowJob> input
private final WorkflowProcessor<J extends WorkflowJob> output
private final int maxpoolsize
private final java.lang.Object environment
private final java.lang.String processName
private final java.lang.String methodName
private final java.lang.String description
private final java.lang.String[] childs
private long blockTime
private long execTime
private long passOnTime
private long execCount
public WorkflowProcessor(java.lang.String name, java.lang.String description, java.lang.String[] childnames, java.lang.Object env, java.lang.String jobExecMethod, int inputQueueSize, WorkflowProcessor<J> output, int maxpoolsize)
public java.lang.Object getEnvironment()
public java.lang.String getMethodName()
public int getQueueSize()
public boolean queueIsEmpty()
public int getMaxQueueSize()
public int getMaxConcurrency()
public int getExecutors()
public void decExecutors()
public J take() throws java.lang.InterruptedException
java.lang.InterruptedException
public void passOn(J next)
public void clear()
private void relaxCapacity()
public void enQueue(J in)
public void shutdown()
public static java.util.Iterator<WorkflowProcessor<?>> processes()
protected void increaseJobTime(long time)
public java.lang.String getName()
public java.lang.String getDescription()
public java.lang.String getChilds()
public long getBlockTime()
public long getExecTime()
public long getExecCount()
public long getPassOnTime()