mirror of
https://github.com/actions/runner.git
synced 2025-12-10 12:36:23 +00:00
WIP WIP WIP
This commit is contained in:
@@ -168,9 +168,10 @@ namespace GitHub.Runner.Listener
|
||||
}
|
||||
}
|
||||
|
||||
public async Task DeleteMessageAsync(TaskAgentMessage message)
|
||||
public async Task DeleteMessageAsync(string messageID, CancellationToken token)
|
||||
{
|
||||
await Task.CompletedTask;
|
||||
Trace.Entering();
|
||||
await _brokerServer.DeleteRunnerMessageAsync(messageID, token);
|
||||
}
|
||||
|
||||
private bool IsGetNextMessageExceptionRetriable(Exception ex)
|
||||
|
||||
@@ -392,6 +392,9 @@ namespace GitHub.Runner.Listener
|
||||
{
|
||||
TaskAgentMessage message = null;
|
||||
bool skipMessageDeletion = false;
|
||||
bool useBrokerDeletion = false;
|
||||
string brokerDeletionParamsMessageID = null;
|
||||
CancellationToken brokerDeletionParamsToken = null;
|
||||
try
|
||||
{
|
||||
Task<TaskAgentMessage> getNextMessage = _listener.GetNextMessageAsync(messageQueueLoopTokenSource.Token);
|
||||
@@ -554,6 +557,9 @@ namespace GitHub.Runner.Listener
|
||||
jobRequestMessage =
|
||||
await runServer.GetJobMessageAsync(messageRef.RunnerRequestId,
|
||||
messageQueueLoopTokenSource.Token);
|
||||
useBrokerDeletion = true;
|
||||
brokerDeletionParamsMessageID = messageRef.RunnerRequestId;
|
||||
brokerDeletionParamsToken = messageQueueLoopTokenSource.Token;
|
||||
}
|
||||
catch (TaskOrchestrationJobAlreadyAcquiredException)
|
||||
{
|
||||
@@ -600,7 +606,14 @@ namespace GitHub.Runner.Listener
|
||||
{
|
||||
try
|
||||
{
|
||||
await _listener.DeleteMessageAsync(message);
|
||||
if (useBrokerDeletion)
|
||||
{
|
||||
await _listener.DeleteMessageAsync(brokerDeletionParamsMessageID, brokerDeletionParamsToken);
|
||||
}
|
||||
else
|
||||
{
|
||||
await _listener.DeleteMessageAsync(message);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
@@ -88,5 +88,33 @@ namespace GitHub.Actions.RunService.WebApi
|
||||
|
||||
throw new Exception($"Failed to get job message: {result.Error}");
|
||||
}
|
||||
|
||||
public async Task<TaskAgentMessage> DeleteRunnerMessageAsync(
|
||||
string messageID,
|
||||
CancellationToken cancellationToken = default
|
||||
)
|
||||
{
|
||||
var requestUri = new Uri(Client.BaseAddress, "message");
|
||||
|
||||
List<KeyValuePair<string, string>> queryParams = new List<KeyValuePair<string, string>>();
|
||||
|
||||
if (messageID != null)
|
||||
{
|
||||
queryParams.Add("messageID", messageID);
|
||||
}
|
||||
|
||||
var result = await SendAsync<TaskAgentMessage>(
|
||||
new HttpMethod("DELETE"),
|
||||
requestUri: requestUri,
|
||||
queryParameters: queryParams,
|
||||
cancellationToken: cancellationToken);
|
||||
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return result.Value;
|
||||
}
|
||||
|
||||
throw new Exception($"Failed to delete job message: {result.Error}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user