Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ private async Task UpdateMembersAsync()
var expiredMembers = storedMembers.Where(m => m.UpdatedAt + ttl < now).ToList();

LogStoredMembers(storedMembers);
await UpdateCurrentMember(activeMembers, now);
await UpdateCurrentMember(activeMembers, expiredMembers, now);
await RemoveExpiredMembers(expiredMembers);

UpdateClusterTopology(activeMembers);
Expand All @@ -174,7 +174,7 @@ private void LogStoredMembers(ICollection<StoredMember> storedMembers)
_logger.LogWarning("Did not get any members from {Store}", _clusterMemberStore.GetType().Name);
}

private async Task UpdateCurrentMember(ICollection<StoredMember> activeMembers, DateTimeOffset now)
private async Task UpdateCurrentMember(ICollection<StoredMember> activeMembers, ICollection<StoredMember> expiredMembers, DateTimeOffset now)
{
var currentMember = activeMembers.FirstOrDefault(m => m.Id == _memberId);

Expand All @@ -187,6 +187,7 @@ private async Task UpdateCurrentMember(ICollection<StoredMember> activeMembers,
{
_logger.LogInformation("Revision {RevisionName} is not active", revisionName);
activeMembers.Remove(currentMember);
expiredMembers.Add(currentMember);
}
else
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
using Microsoft.Extensions.Logging;
using Proto.Cluster.AzureContainerApps.Actors;
using Proto.Cluster.AzureContainerApps.Messages;
using Proto.Cluster.AzureContainerApps.Utils;
using Proto.DependencyInjection;

namespace Proto.Cluster.AzureContainerApps.ClusterProviders;
Expand All @@ -15,12 +14,12 @@ namespace Proto.Cluster.AzureContainerApps.ClusterProviders;
public class AzureContainerAppsProvider : IClusterProvider
{
private readonly ILogger _logger;
private readonly string _advertisedHost;

private string _address = default!;
private Cluster _cluster = default!;
private string _clusterName = default!;
private string[] _kinds = default!;
private string _host = default!;
private int _port;
private PID _clusterMonitor = default!;

Expand All @@ -31,17 +30,17 @@ public class AzureContainerAppsProvider : IClusterProvider
public AzureContainerAppsProvider(ILogger<AzureContainerAppsProvider> logger)
{
_logger = logger;
_advertisedHost = IPUtils.FindSmallestIpAddress().ToString();
}

/// <inheritdoc />
public Task StartMemberAsync(Cluster cluster)
{
var clusterName = cluster.Config.ClusterName;
var (_, port) = cluster.System.GetAddress();
var (host, port) = cluster.System.GetAddress();
var kinds = cluster.GetClusterKinds();
_cluster = cluster;
_clusterName = clusterName;
_host = host;
_port = port;
_kinds = kinds;

Expand Down Expand Up @@ -86,7 +85,7 @@ private void StartClusterMonitor()
private void RegisterMember()
{
// Send a message to register this member, which will also start the cluster monitor.
_cluster.System.Root.Send(_clusterMonitor, new RegisterMember(_clusterName, _advertisedHost, _port, _kinds, _cluster.System.Id));
_cluster.System.Root.Send(_clusterMonitor, new RegisterMember(_clusterName, _host, _port, _kinds, _cluster.System.Id));
}

private void UnregisterMember()
Expand Down