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;
}