@@ -26,16 +26,16 @@ internal sealed class ClusterHeartbeatReceiver : UntypedActor
26
26
{
27
27
// Important - don't use Cluster.Get(Context.System) in constructor because that would
28
28
// cause deadlock. See startup sequence in ClusterDaemon.
29
- private readonly Lazy < Cluster > _cluster ;
29
+ private readonly Cluster _cluster ;
30
30
31
- public bool VerboseHeartbeat => _cluster . Value . Settings . VerboseHeartbeatLogging ;
31
+ public bool VerboseHeartbeat => _cluster . Settings . VerboseHeartbeatLogging ;
32
32
33
33
/// <summary>
34
34
/// TBD
35
35
/// </summary>
36
- public ClusterHeartbeatReceiver ( Func < Cluster > getCluster )
36
+ public ClusterHeartbeatReceiver ( Cluster cluster )
37
37
{
38
- _cluster = new Lazy < Cluster > ( getCluster ) ;
38
+ _cluster = cluster ;
39
39
}
40
40
41
41
protected override void OnReceive ( object message )
@@ -44,8 +44,8 @@ protected override void OnReceive(object message)
44
44
{
45
45
case ClusterHeartbeatSender . Heartbeat hb :
46
46
// TODO log the sequence nr once serializer is enabled
47
- if ( VerboseHeartbeat ) _cluster . Value . CurrentInfoLogger . LogDebug ( "Heartbeat from [{0}]" , hb . From ) ;
48
- Sender . Tell ( new ClusterHeartbeatSender . HeartbeatRsp ( _cluster . Value . SelfUniqueAddress ,
47
+ if ( VerboseHeartbeat ) _cluster . CurrentInfoLogger . LogDebug ( "Heartbeat from [{0}]" , hb . From ) ;
48
+ Sender . Tell ( new ClusterHeartbeatSender . HeartbeatRsp ( _cluster . SelfUniqueAddress ,
49
49
hb . SequenceNr , hb . CreationTimeNanos ) ) ;
50
50
break ;
51
51
default :
@@ -54,7 +54,7 @@ protected override void OnReceive(object message)
54
54
}
55
55
}
56
56
57
- public static Props Props ( Func < Cluster > getCluster )
57
+ public static Props Props ( Cluster getCluster )
58
58
{
59
59
return Akka . Actor . Props . Create ( ( ) => new ClusterHeartbeatReceiver ( getCluster ) ) ;
60
60
}
@@ -76,11 +76,12 @@ internal class ClusterHeartbeatSender : ReceiveActor
76
76
private DateTime _tickTimestamp ;
77
77
78
78
/// <summary>
79
- /// TBD
79
+ /// Create a new instance of the <see cref="ClusterHeartbeatSender"/> and pass in a reference to the <see cref="Cluster"/>
80
+ /// to which it belongs.
80
81
/// </summary>
81
- public ClusterHeartbeatSender ( )
82
+ public ClusterHeartbeatSender ( Cluster cluster )
82
83
{
83
- _cluster = Cluster . Get ( Context . System ) ;
84
+ _cluster = cluster ;
84
85
var tickInitialDelay = _cluster . Settings . PeriodicTasksInitialDelay . Max ( _cluster . Settings . HeartbeatInterval ) ;
85
86
_tickTimestamp = DateTime . UtcNow + tickInitialDelay ;
86
87
0 commit comments