Class SegmentContextExecutors


  • public final class SegmentContextExecutors
    extends java.lang.Object
    Executors that will mount a segment before running a command. When switching threads, for example when instrumenting an asynchronous application, it is recommended to use one of these Executors to make sure callbacks have the trace segment available.
    
     DynamoDbAsyncClient client = DynamoDbAsyncClient.create();
    
     client.getItem(request).thenComposeAsync(response -> {
         // If we did not provide the segment context executor, this request would not be traced correctly.
         return client.getItem(request2);
     }, SegmentContextExecutors.newSegmentContextExecutor()); *
     
    • Method Detail

      • newSegmentContextExecutor

        public static java.util.concurrent.Executor newSegmentContextExecutor()
        Returns a new Executor which will run any tasks with the current segment mounted.
      • newSegmentContextExecutor

        public static java.util.concurrent.Executor newSegmentContextExecutor​(@Nullable Segment segment)
        Returns a new Executor which will run any tasks with the provided Segment mounted. If segment is null, the executor is a no-op.
      • newSegmentContextExecutor

        public static java.util.concurrent.Executor newSegmentContextExecutor​(AWSXRayRecorder recorder,
                                                                              @Nullable Segment segment)
        Returns a new Executor which will run any tasks with the provided Segment mounted in the provided AWSXRayRecorder. If segment is null, the executor is a no-op.