Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  
  package org.easymetrics.easymetrics.measure;
  
  import java.util.List;
 
 

Author(s):
Administrator
 
 public class DefaultMeasureWorker extends Thread {
 	private static final Logger					LOGGER				= LoggerFactory.getLogger(DefaultMeasureWorker.class);
 
 	private long								checkInterval		= 2000;
 	private String								mbeanObjectName"org.easymetrics:type=Metrics,name=Measurement";
 	private boolean								publishAllfalse;
 	private AtomicBoolean						terminatingnew AtomicBoolean(false);
 
 	public void run() {
 
 
 		while (!getTerminating()) {
 			try {
 
 				MetricsTimer metricsTimer = getMetricsTimer();
 				if (metricsTimer != null) {
 					processMetricsTimer(metricsTimer);
 				}
 			} catch (Exception e) {
 				if (.isWarnEnabled()) {
 					.warn("Failed to process measurement data"e);
 				}
 			}
 		}
 
 		if (.isInfoEnabled()) {
 			.info("Background measurement worker is terminated");
 		}
 	}
 
 	public void destroy() {
 	}
 
 	public void enqueueMetricsTimer(MetricsTimer timer) {
 		if (!.offer(timer)) {
 			if (.isDebugEnabled()) {
 				.debug("Current queue limit " + .size() + " is reached");
 			}
 		}
 	}
 
 	public int getQueueSize() {
 	}
 
 	protected void processMetricsTimer(MetricsTimer metricsTimer) {
 
 		List<MetricsTimermetricsTimers = metricsTimer.getAllMetricsTimers();
 		if (!metricsTimers.isEmpty()) {
 			List<Measurementmeasurements = toMeasurements(metricsTimers);
 			if ( != null) {
 			}
 			boolean valuable = true;
 			if ( != null) {
 				valuable = .addMeasurement(measurements);
 			}
 			if ( || valuable) {
 				// measurements are valuable
 				if ( != null) {
 					// add them to the publish worker at once
 				}
 			} else {
 				if (.isDebugEnabled()) {
					.debug(metricsTimers.size() + " timers dropped from further processing. valuable=[{}], timers=[{}]"valuable,
							ArrayUtils.toString(metricsTimers.toArray()));
				}
			}
		}
	}
		for (;;) {
			try {
				// it will wait till an item available
catch (InterruptedException ie) {
				.warn("Poll operation on queue interrupted"ie);
			}
		}
	}
	private void registerMBeans() {
		MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer();
		try {
			ObjectName measurementName = new ObjectName();
			if (mbeanServer.isRegistered(measurementName)) {
				mbeanServer.unregisterMBean(measurementName);
			}
			mbeanServer.registerMBean(measurementName);
				.info("Registering with JMX server as MBean [" + measurementName + "]");
			}
catch (Exception e) {
			String message = "Unable to register MBeans with error " + e.getMessage();
			.error(messagee);
		}
	}
	private List<MeasurementtoMeasurements(List<MetricsTimermetricsTimers) {
		List<MeasurementmeasurementList = new ArrayList<Measurement>();
		if (metricsTimers != null) {
			for (MetricsTimer metricsTimer : metricsTimers) {
				measurementList.add(metricsTimer.getMeasurement());
			}
		}
		return measurementList;
	}
	public void setTerminating() {
		this..set(true);
	}
	protected boolean getTerminating() {
		return .get();
	}
	public void setPublishAll(boolean publishAll) {
		this. = publishAll;
	}
	public void setCheckInterval(long checkInterval) {
		this. = checkInterval;
	}
	public void setMetricsPublishWorker(MetricsPublishWorker metricsPublishWorker) {
		this. = metricsPublishWorker;
	}
	public void setMetricsAggregateWorker(MetricsAggregateWorker metricsAggregateWorker) {
		this. = metricsAggregateWorker;
	}
	public void setMbeanObjectName(String mbeanObjectName) {
		this. = mbeanObjectName;
	}
	public void setQueueCapacity(int queueCapacity) {
	}
New to GrepCode? Check out our FAQ X