public class NetworkLatencyStrategyFactory extends ArrayBasedStrategyFactory
| Modifier and Type | Class and Description |
|---|---|
protected static class |
NetworkLatencyStrategyFactory.Samples |
| Modifier and Type | Field and Description |
|---|---|
protected int |
averageSamples
Number of samples used for average calculation.
|
protected int |
maxTries
This strategy compares number of 'maxTries' random node.
|
protected java.lang.String |
nodeID |
protected int |
pingPeriod
Ping period time, in SECONDS.
|
protected long |
pingTimeout
Ping period time, in MILLISECONDS.
|
protected java.util.concurrent.ScheduledFuture<?> |
pingTimer
Cancelable timer of ping loop
|
protected java.lang.String |
previousNodeID |
protected java.util.concurrent.ConcurrentHashMap<java.lang.String,NetworkLatencyStrategyFactory.Samples> |
responseTimes |
protected java.util.concurrent.ScheduledExecutorService |
scheduler |
protected Transporter |
transporter |
preferLocalbroker, logger, name| Constructor and Description |
|---|
NetworkLatencyStrategyFactory() |
NetworkLatencyStrategyFactory(boolean preferLocal) |
| Modifier and Type | Method and Description |
|---|---|
<T extends Endpoint> |
create() |
protected long |
getAverageResponseTime(java.lang.String nextNodeID) |
int |
getAverageSamples() |
int |
getMaxTries() |
int |
getPingPeriod() |
long |
getPingTimeout() |
protected void |
sendNextPing() |
protected void |
sendPing(java.lang.String nextNodeID) |
void |
setAverageSamples(int averageSamples) |
void |
setMaxTries(int maxTries) |
void |
setPingPeriod(int pingPeriod) |
void |
setPingTimeout(long pingTimeout) |
void |
started(ServiceBroker broker)
Initializes strategy instance.
|
void |
stopped() |
isPreferLocal, setPreferLocalgetBroker, getLogger, getNameprotected int maxTries
protected int pingPeriod
protected long pingTimeout
protected int averageSamples
protected java.util.concurrent.ScheduledExecutorService scheduler
protected Transporter transporter
protected java.lang.String nodeID
protected final java.util.concurrent.ConcurrentHashMap<java.lang.String,NetworkLatencyStrategyFactory.Samples> responseTimes
protected volatile java.util.concurrent.ScheduledFuture<?> pingTimer
protected volatile java.lang.String previousNodeID
public NetworkLatencyStrategyFactory()
public NetworkLatencyStrategyFactory(boolean preferLocal)
public void started(ServiceBroker broker) throws java.lang.Exception
started in class MoleculerComponentbroker - parent ServiceBrokerjava.lang.Exceptionpublic void stopped()
stopped in class MoleculerComponentprotected void sendNextPing()
protected void sendPing(java.lang.String nextNodeID)
protected long getAverageResponseTime(java.lang.String nextNodeID)
public <T extends Endpoint> Strategy<T> create()
create in class StrategyFactorypublic int getMaxTries()
public void setMaxTries(int maxTries)
public int getPingPeriod()
public void setPingPeriod(int pingPeriod)
public long getPingTimeout()
public void setPingTimeout(long pingTimeout)
public int getAverageSamples()
public void setAverageSamples(int averageSamples)