public class SuspendXCommand extends WorkflowXCommand<Void>
INSTR_FAILED_JOBS_COUNTER_NAME, INSTR_KILLED_JOBS_COUNTER_NAME, INSTR_SUCCEEDED_JOBS_COUNTER_NAME, KEEP_WF_ACTION_DIR
DEFAULT_LOCK_TIMEOUT, DEFAULT_REQUEUE_DELAY, dryrun, eventService, instrumentation, INSTRUMENTATION_GROUP, LOG
Constructor and Description |
---|
SuspendXCommand(String id) |
Modifier and Type | Method and Description |
---|---|
protected void |
eagerLoadState()
Load the necessary state to perform an eager precondition check.
|
protected void |
eagerVerifyPrecondition()
Verify the precondition for the command before obtaining a lock.
|
protected Void |
execute()
Command execution body.
|
String |
getEntityKey()
Return the entity key for the command.
|
String |
getKey()
Get command key
|
protected boolean |
isLockRequired()
Indicate if the the command requires locking.
|
protected void |
loadState()
Load the necessary state to perform the precondition check and to execute the command.
|
protected void |
setLogInfo()
Set the thread local logInfo with the context of this command and reset log prefix.
|
static void |
suspendJob(JPAService jpaService,
WorkflowJobBean workflow,
String id,
String actionId,
List<BatchQueryExecutor.UpdateEntry> updateList)
Suspend the workflow job and pending flag to false for the actions that are START_RETRY or START_MANUAL or
END_RETRY or END_MANUAL
|
protected void |
verifyPrecondition()
Verify the precondition for the command after a lock has been obtain, just before executing the command.
|
generateEvent, generateEvent, generateEvent, updateParentIfNecessary, updateParentIfNecessary
call, executeInterrupts, getCreatedTime, getInstrumentation, getLockTimeOut, getLog, getName, getPriority, getRequeueDelay, getType, inInterruptMode, isReQueueRequired, queue, queue, resetUsed, setInterruptMode, toString
public SuspendXCommand(String id)
protected void setLogInfo()
XCommand
setLogInfo
in class XCommand<Void>
protected Void execute() throws CommandException
XCommand
This method will be invoked after the {link #loadState} and {link #verifyPrecondition} methods.
If the command requires locking, this method will be invoked ONLY if the lock has been acquired.
execute
in class XCommand<Void>
CommandException
- thrown if the command execution failed.public static void suspendJob(JPAService jpaService, WorkflowJobBean workflow, String id, String actionId, List<BatchQueryExecutor.UpdateEntry> updateList) throws WorkflowException, CommandException
jpaService
- jpa serviceworkflow
- workflow jobid
- workflow job idactionId
- workflow action idWorkflowException
- thrown if failed to suspend workflow instanceCommandException
- thrown if unable set pending false for actionsprotected void eagerLoadState() throws CommandException
XCommand
This implementation does a NOP.
Subclasses should override this method and load the state needed to do an eager precondition check.
A trivial implementation is calling {link #loadState}.
eagerLoadState
in class XCommand<Void>
CommandException
protected void eagerVerifyPrecondition() throws CommandException, PreconditionException
XCommand
This implementation does a NOP.
A trivial implementation is calling {link #verifyPrecondition}.
eagerVerifyPrecondition
in class XCommand<Void>
CommandException
- thrown if the precondition is not met.PreconditionException
public String getEntityKey()
XCommand
getEntityKey
in interface XCallable<Void>
getEntityKey
in class XCommand<Void>
protected boolean isLockRequired()
XCommand
Subclasses should override this method if they require locking.
isLockRequired
in class XCommand<Void>
true/false
protected void loadState() throws CommandException
XCommand
Subclasses must implement this method and load the state needed to do the precondition check and execute the command.
loadState
in class XCommand<Void>
CommandException
protected void verifyPrecondition() throws CommandException, PreconditionException
XCommand
verifyPrecondition
in class XCommand<Void>
CommandException
- thrown if the precondition is not met.PreconditionException
Copyright © 2018 Apache Software Foundation. All rights reserved.