Skip to content

Commit 651ea42

Browse files
Handle ForceTokenRefresh message (#3133)
* Handle ForceTokenRefresh message * move to constants * format
1 parent bcc665a commit 651ea42

File tree

4 files changed

+28
-2
lines changed

4 files changed

+28
-2
lines changed

src/Runner.Listener/BrokerMessageListener.cs

+7-2
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ public async Task<TaskAgentMessage> GetNextMessageAsync(CancellationToken token)
273273
}
274274

275275
// re-create VssConnection before next retry
276-
await RefreshBrokerConnection();
276+
await RefreshBrokerConnectionAsync();
277277

278278
Trace.Info("Sleeping for {0} seconds before retrying.", _getNextMessageRetryInterval.TotalSeconds);
279279
await HostContext.Delay(_getNextMessageRetryInterval, token);
@@ -303,6 +303,11 @@ public async Task<TaskAgentMessage> GetNextMessageAsync(CancellationToken token)
303303
}
304304
}
305305

306+
public async Task RefreshListenerTokenAsync(CancellationToken cancellationToken)
307+
{
308+
await RefreshBrokerConnectionAsync();
309+
}
310+
306311
public async Task DeleteMessageAsync(TaskAgentMessage message)
307312
{
308313
await Task.CompletedTask;
@@ -398,7 +403,7 @@ ex is AccessDeniedException ||
398403
}
399404
}
400405

401-
private async Task RefreshBrokerConnection()
406+
private async Task RefreshBrokerConnectionAsync()
402407
{
403408
var configManager = HostContext.GetService<IConfigurationManager>();
404409
_settings = configManager.LoadSettings();

src/Runner.Listener/MessageListener.cs

+7
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ public interface IMessageListener : IRunnerService
2525
Task DeleteSessionAsync();
2626
Task<TaskAgentMessage> GetNextMessageAsync(CancellationToken token);
2727
Task DeleteMessageAsync(TaskAgentMessage message);
28+
29+
Task RefreshListenerTokenAsync(CancellationToken token);
2830
void OnJobStatus(object sender, JobStatusEventArgs e);
2931
}
3032

@@ -379,6 +381,11 @@ public async Task DeleteMessageAsync(TaskAgentMessage message)
379381
}
380382
}
381383

384+
public async Task RefreshListenerTokenAsync(CancellationToken cancellationToken)
385+
{
386+
await _runnerServer.RefreshConnectionAsync(RunnerConnectionType.MessageQueue, TimeSpan.FromSeconds(60));
387+
}
388+
382389
private TaskAgentMessage DecryptMessage(TaskAgentMessage message)
383390
{
384391
if (_session.EncryptionKey == null ||

src/Runner.Listener/Runner.cs

+4
Original file line numberDiff line numberDiff line change
@@ -596,6 +596,10 @@ await runServer.GetJobMessageAsync(messageRef.RunnerRequestId,
596596
Trace.Info($"Service requests the hosted runner to shutdown. Reason: '{HostedRunnerShutdownMessage.Reason}'.");
597597
return Constants.Runner.ReturnCode.Success;
598598
}
599+
else if (string.Equals(message.MessageType, TaskAgentMessageTypes.ForceTokenRefresh))
600+
{
601+
await _listener.RefreshListenerTokenAsync(messageQueueLoopTokenSource.Token);
602+
}
599603
else
600604
{
601605
Trace.Error($"Received message {message.MessageId} with unsupported message type {message.MessageType}.");
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
using System;
2+
using System.Runtime.Serialization;
3+
4+
namespace GitHub.DistributedTask.WebApi
5+
{
6+
public sealed class TaskAgentMessageTypes
7+
{
8+
public static readonly string ForceTokenRefresh = "ForceTokenRefresh";
9+
}
10+
}

0 commit comments

Comments
 (0)