use of com.uber.cadence.Decision in project cadence-client by uber-java.
the class ActivityDecisionStateMachine method createRequestCancelActivityTaskDecision.
private Decision createRequestCancelActivityTaskDecision() {
RequestCancelActivityTaskDecisionAttributes tryCancel = new RequestCancelActivityTaskDecisionAttributes();
tryCancel.setActivityId(scheduleAttributes.getActivityId());
Decision decision = new Decision();
decision.setRequestCancelActivityTaskDecisionAttributes(tryCancel);
decision.setDecisionType(DecisionType.RequestCancelActivityTask);
return decision;
}
use of com.uber.cadence.Decision in project cadence-client by uber-java.
the class ActivityDecisionStateMachine method createScheduleActivityTaskDecision.
private Decision createScheduleActivityTaskDecision() {
Decision decision = new Decision();
decision.setScheduleActivityTaskDecisionAttributes(scheduleAttributes);
decision.setDecisionType(DecisionType.ScheduleActivityTask);
return decision;
}
use of com.uber.cadence.Decision in project cadence-client by uber-java.
the class ReplayDecisionTaskHandler method handleDecisionTaskImpl.
private Result handleDecisionTaskImpl(DecisionTaskWithHistoryIterator decisionTaskIterator) throws Throwable {
HistoryHelper historyHelper = new HistoryHelper(decisionTaskIterator);
ReplayDecider decider = createDecider(historyHelper);
PollForDecisionTaskResponse decisionTask = historyHelper.getDecisionTask();
if (decisionTask.isSetQuery()) {
RespondQueryTaskCompletedRequest queryCompletedRequest = new RespondQueryTaskCompletedRequest();
queryCompletedRequest.setTaskToken(decisionTask.getTaskToken());
try {
byte[] queryResult = decider.query(decisionTask.getQuery());
queryCompletedRequest.setQueryResult(queryResult);
queryCompletedRequest.setCompletedType(QueryTaskCompletedType.COMPLETED);
} catch (Throwable e) {
// TODO: Appropriate exception serialization.
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
e.printStackTrace(pw);
queryCompletedRequest.setErrorMessage(sw.toString());
queryCompletedRequest.setCompletedType(QueryTaskCompletedType.FAILED);
}
return new DecisionTaskHandler.Result(null, null, queryCompletedRequest, null);
} else {
decider.decide();
DecisionsHelper decisionsHelper = decider.getDecisionsHelper();
List<Decision> decisions = decisionsHelper.getDecisions();
byte[] context = decisionsHelper.getWorkflowContextDataToReturn();
if (log.isTraceEnabled()) {
WorkflowExecution execution = decisionTask.getWorkflowExecution();
log.trace("WorkflowTask startedEventId=" + decisionTask.getStartedEventId() + ", WorkflowID=" + execution.getWorkflowId() + ", RunID=" + execution.getRunId() + " completed with " + WorkflowExecutionUtils.prettyPrintDecisions(decisions));
} else if (log.isDebugEnabled()) {
WorkflowExecution execution = decisionTask.getWorkflowExecution();
log.debug("WorkflowTask startedEventId=" + decisionTask.getStartedEventId() + ", WorkflowID=" + execution.getWorkflowId() + ", RunID=" + execution.getRunId() + " completed with " + decisions.size() + " new decisions");
}
RespondDecisionTaskCompletedRequest completedRequest = new RespondDecisionTaskCompletedRequest();
completedRequest.setTaskToken(decisionTask.getTaskToken());
completedRequest.setDecisions(decisions);
completedRequest.setExecutionContext(context);
return new DecisionTaskHandler.Result(completedRequest, null, null, null);
}
}
use of com.uber.cadence.Decision in project cadence-client by uber-java.
the class TimerDecisionStateMachine method createCancelTimerDecision.
private Decision createCancelTimerDecision() {
CancelTimerDecisionAttributes tryCancel = new CancelTimerDecisionAttributes();
tryCancel.setTimerId(attributes.getTimerId());
Decision decision = new Decision();
decision.setCancelTimerDecisionAttributes(tryCancel);
decision.setDecisionType(DecisionType.CancelTimer);
return decision;
}
use of com.uber.cadence.Decision in project cadence-client by uber-java.
the class ChildWorkflowDecisionStateMachine method createStartChildWorkflowExecutionDecision.
private Decision createStartChildWorkflowExecutionDecision() {
Decision decision = new Decision();
decision.setStartChildWorkflowExecutionDecisionAttributes(startAttributes);
decision.setDecisionType(DecisionType.StartChildWorkflowExecution);
return decision;
}
Aggregations