Allow the long threshold to be configured.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@1974 6335cc39-0255-0410-8fd6-9bcaacd3b74c
This commit is contained in:
@@ -100,6 +100,16 @@ public class Invoker extends LoopingThread
|
|||||||
_receiver = resultReceiver;
|
_receiver = resultReceiver;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configures the duration after which an invoker unit will be considered
|
||||||
|
* "long". When they complete, long units have a warning message
|
||||||
|
* logged. The default long threshold is 500 milliseconds.
|
||||||
|
*/
|
||||||
|
public void setLongThresholds (long longThreshold)
|
||||||
|
{
|
||||||
|
_longThreshold = longThreshold;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Posts a unit to this invoker for subsequent invocation on the
|
* Posts a unit to this invoker for subsequent invocation on the
|
||||||
* invoker's thread.
|
* invoker's thread.
|
||||||
@@ -185,10 +195,11 @@ public class Invoker extends LoopingThread
|
|||||||
recordMetrics(key, duration);
|
recordMetrics(key, duration);
|
||||||
|
|
||||||
// report long runners
|
// report long runners
|
||||||
if (duration > 500L) {
|
if (duration > _longThreshold) {
|
||||||
Log.warning(((duration >= 5000L) ? "Really long" : "Long") +
|
String howLong = (duration >= 10*_longThreshold) ?
|
||||||
" invoker unit [unit=" + unit +
|
"Really long" : "Long";
|
||||||
" (" + key + "), time=" + duration + "ms].");
|
Log.warning(howLong + " invoker unit [unit=" + unit +
|
||||||
|
" (" + key + "), time=" + duration + "ms].");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -240,6 +251,10 @@ public class Invoker extends LoopingThread
|
|||||||
/** The total number of invoker units run since the last report. */
|
/** The total number of invoker units run since the last report. */
|
||||||
protected int _unitsRun;
|
protected int _unitsRun;
|
||||||
|
|
||||||
|
/** The duration of time after which we consider a unit to be delinquent
|
||||||
|
* and log a warning. */
|
||||||
|
protected long _longThreshold = 500L;
|
||||||
|
|
||||||
/** Whether or not to track invoker unit performance. */
|
/** Whether or not to track invoker unit performance. */
|
||||||
protected static final boolean PERF_TRACK = true;
|
protected static final boolean PERF_TRACK = true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user