Search in sources :

Example 1 with ActivityTask

use of com.amazonaws.services.simpleworkflow.model.ActivityTask in project aws-doc-sdk-examples by awsdocs.

the class ActivityWorkerWithGracefulShutdown method pollAndExecute.

public static void pollAndExecute() {
    while (!terminate) {
        System.out.println("Polling for an activity task from the tasklist '" + HelloTypes.TASKLIST + "' in the domain '" + HelloTypes.DOMAIN + "'.");
        ActivityTask task = swf.pollForActivityTask(new PollForActivityTaskRequest().withDomain(HelloTypes.DOMAIN).withTaskList(new TaskList().withName(HelloTypes.TASKLIST)));
        String taskToken = task.getTaskToken();
        if (taskToken != null) {
            String result = null;
            Throwable error = null;
            try {
                System.out.println("Executing the activity task with input '" + task.getInput() + "'.");
                result = executeActivityTask(task.getInput());
            } catch (Throwable th) {
                error = th;
            }
            if (error == null) {
                System.out.println("The activity task succeeded with result '" + result + "'.");
                swf.respondActivityTaskCompleted(new RespondActivityTaskCompletedRequest().withTaskToken(taskToken).withResult(result));
            } else {
                System.out.println("The activity task failed with the error '" + error.getClass().getSimpleName() + "'.");
                swf.respondActivityTaskFailed(new RespondActivityTaskFailedRequest().withTaskToken(taskToken).withReason(error.getClass().getSimpleName()).withDetails(error.getMessage()));
            }
        }
    }
}
Also used : PollForActivityTaskRequest(com.amazonaws.services.simpleworkflow.model.PollForActivityTaskRequest) RespondActivityTaskCompletedRequest(com.amazonaws.services.simpleworkflow.model.RespondActivityTaskCompletedRequest) ActivityTask(com.amazonaws.services.simpleworkflow.model.ActivityTask) TaskList(com.amazonaws.services.simpleworkflow.model.TaskList) RespondActivityTaskFailedRequest(com.amazonaws.services.simpleworkflow.model.RespondActivityTaskFailedRequest)

Example 2 with ActivityTask

use of com.amazonaws.services.simpleworkflow.model.ActivityTask in project camel by apache.

the class CamelSWFActivityConsumerTest method receivesDecisionTask.

@Test
public void receivesDecisionTask() throws Exception {
    result.expectedMinimumMessageCount(1);
    result.expectedMessagesMatches(new Predicate() {

        public boolean matches(Exchange exchange) {
            return exchange.getIn().getHeader(SWFConstants.ACTION).equals(SWFConstants.EXECUTE_ACTION) && exchange.getIn().getBody(Object[].class)[0].equals("test");
        }
    });
    ActivityTask activityTask = new ActivityTask();
    activityTask.setTaskToken("token");
    activityTask.setInput("[\"[Ljava.lang.Object;\",[\"test\"]]");
    when(amazonSWClient.pollForActivityTask(any(PollForActivityTaskRequest.class))).thenReturn(activityTask);
    context.start();
    assertMockEndpointsSatisfied();
    verify(amazonSWClient, atLeastOnce()).pollForActivityTask(any(PollForActivityTaskRequest.class));
}
Also used : Exchange(org.apache.camel.Exchange) PollForActivityTaskRequest(com.amazonaws.services.simpleworkflow.model.PollForActivityTaskRequest) ActivityTask(com.amazonaws.services.simpleworkflow.model.ActivityTask) Predicate(org.apache.camel.Predicate) Test(org.junit.Test)

Aggregations

ActivityTask (com.amazonaws.services.simpleworkflow.model.ActivityTask)2 PollForActivityTaskRequest (com.amazonaws.services.simpleworkflow.model.PollForActivityTaskRequest)2 RespondActivityTaskCompletedRequest (com.amazonaws.services.simpleworkflow.model.RespondActivityTaskCompletedRequest)1 RespondActivityTaskFailedRequest (com.amazonaws.services.simpleworkflow.model.RespondActivityTaskFailedRequest)1 TaskList (com.amazonaws.services.simpleworkflow.model.TaskList)1 Exchange (org.apache.camel.Exchange)1 Predicate (org.apache.camel.Predicate)1 Test (org.junit.Test)1