Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * Copyright 2010-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
  *
  * Licensed under the Apache License, Version 2.0 (the "License").
  * You may not use this file except in compliance with the License.
  * A copy of the License is located at
  *
  *  http://aws.amazon.com/apache2.0
  *
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
package com.amazonaws.metrics.internal.cloudwatch;
A internal daemon thread used to upload request metrics to Amazon CloudWatch.
class MetricUploaderThread extends Thread {
    private static final String USER_AGENT = MetricUploaderThread.class.getName() + "/" + VersionInfoUtils.getVersion();
    private static final String THREAD_NAME = "java-sdk-metric-uploader";
    private volatile boolean cancelled;
    private final AmazonCloudWatchClient cloudwatchClient;
    private final Log log = LogFactory.getLog(getClass());
    private final BlockingRequestBuilder qIterator;
            BlockingQueue<MetricDatumqueue) {
        this(config,
             queue,
             config.getCredentialsProvider() == null
             ? new AmazonCloudWatchClient()
             : new AmazonCloudWatchClient(config.getCredentialsProvider()));
    }
        BlockingQueue<MetricDatumqueue,
        AmazonCloudWatchClient client)
    {
        super();
        if (config == null || queue == null) {
            throw new IllegalArgumentException();
        }
        this. = client;
        this. = new BlockingRequestBuilder(configqueue);
        String endpoint = config.getCloudWatchEndPoint();
        if (endpoint != null)
            .setEndpoint(endpoint);
        this.setPriority();
        setDaemon(true);
    }
    @Override
    public void run() {
        while (!) {
            try {
                Iterable<PutMetricDataRequestrequests = .nextUploadUnits();
                for (PutMetricDataRequest reqrequests) {
                    appendUserAgent(req);
                    .debug(req);
                    .putMetricData(req);
                    Thread.yield();
                }
            } catch(InterruptedException e) {
                if (!) {
                    .debug("Unexpected interruption ignored");
                }
            } catch(Throwable t) {
                .warn("Unexpected condition; soldier on"t);
                Thread.yield();
            }
        }
    }
    void cancel() {  = true; }
        return ;
    }
    private void appendUserAgent(PutMetricDataRequest request) {
    }
New to GrepCode? Check out our FAQ X