public ActivityTask poll()

in src/main/java/com/amazonaws/services/simpleworkflow/flow/worker/ActivityTaskPoller.java [144:182]


    public ActivityTask poll() throws InterruptedException {
        waitIfSuspended();
        if (!initialized) {
            checkRequiredProperty(service, "service");
            checkRequiredProperty(domain, "domain");
            checkRequiredProperty(taskListToPoll, "taskListToPoll");
            initialized = true;
        }

        final Metrics metrics = metricsRegistry.newMetrics(MetricName.Operation.ACTIVITY_TASK_POLL.getName());
        metrics.addProperty(MetricName.Property.TASK_LIST.getName(), taskListToPoll);
        metrics.addProperty(MetricName.Property.DOMAIN.getName(), domain);
        PollForActivityTaskRequest pollRequest = PollForActivityTaskRequest.builder()
            .domain(domain)
            .identity(identity)
            .taskList(TaskList.builder().name(taskListToPoll).build())
            .build();

        if (log.isDebugEnabled()) {
            log.debug("poll request begin: " + pollRequest);
        }

        pollRequest = RequestTimeoutHelper.overridePollRequestTimeout(pollRequest, config);
        ActivityTask result;
        try {
            PollForActivityTaskRequest finalPollRequest = pollRequest;
            result = ActivityTask.fromSdkType(metrics.recordSupplier(() -> service.pollForActivityTask(finalPollRequest),
                MetricName.Operation.POLL_FOR_ACTIVITY_TASK.getName(), TimeUnit.MILLISECONDS));
            if (result == null || result.getTaskToken() == null) {
                result = null;
            } else {
                MetricHelper.recordMetrics(result, metrics);
            }
            metrics.recordCount(MetricName.EMPTY_POLL_COUNT.getName(), result == null, MetricName.getOperationDimension(MetricName.Operation.POLL_FOR_ACTIVITY_TASK.getName()));
        } finally {
            metrics.close();
        }
        return result;
    }