mirror of
https://github.com/actions/runner.git
synced 2025-12-10 20:36:49 +00:00
print retrieved message
This commit is contained in:
@@ -6,6 +6,7 @@ using GitHub.Runner.Common.Util;
|
||||
using GitHub.Services.WebApi;
|
||||
using GitHub.Services.Common;
|
||||
using GitHub.Runner.Sdk;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
|
||||
namespace GitHub.Runner.Common
|
||||
@@ -14,7 +15,7 @@ namespace GitHub.Runner.Common
|
||||
public interface IBrokerServer : IRunnerService
|
||||
{
|
||||
Task ConnectAsync(Uri serverUrl, CancellationToken cancellationToken);
|
||||
Task<GitHub.DistributedTask.WebApi.TaskAgentMessage> GetMessageAsync(Int32 poolId, Guid sessionId, Int64? lastMessageId, CancellationToken cancellationToken);
|
||||
Task<string> GetMessageAsync(int poolId, Guid sessionId, long? lastMessageId, CancellationToken cancellationToken);
|
||||
}
|
||||
|
||||
public sealed class BrokerServer : RunnerService, IBrokerServer
|
||||
@@ -29,10 +30,29 @@ namespace GitHub.Runner.Common
|
||||
await _httpClient.GetAsync("health", cancellationToken);
|
||||
}
|
||||
|
||||
public async Task<GitHub.DistributedTask.WebApi.TaskAgentMessage> GetMessageAsync(Int32 poolId, Guid sessionId, Int64? lastMessageId, CancellationToken cancellationToken)
|
||||
public async Task<string> GetMessageAsync(int poolId, Guid sessionId, long? lastMessageId, CancellationToken cancellationToken)
|
||||
{
|
||||
await _httpClient.GetAsync("message", cancellationToken);
|
||||
return null;
|
||||
var response = await _httpClient.GetAsync("message", cancellationToken);
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
var content = default(string);
|
||||
try
|
||||
{
|
||||
content = await response.Content.ReadAsStringAsync();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
|
||||
var error = $"HTTP {(int)response.StatusCode} {Enum.GetName(typeof(HttpStatusCode), response.StatusCode)}";
|
||||
if (!string.IsNullOrEmpty(content))
|
||||
{
|
||||
error = $"{error}: {content}";
|
||||
}
|
||||
throw new Exception(error);
|
||||
}
|
||||
|
||||
return await response.Content.ReadAsStringAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace GitHub.Runner.Listener
|
||||
|
||||
public sealed class MessageListener : RunnerService, IMessageListener
|
||||
{
|
||||
private long? _lastMessageId;
|
||||
// private long? _lastMessageId;
|
||||
private RunnerSettings _settings;
|
||||
private ITerminal _term;
|
||||
private IRunnerServer _runnerServer;
|
||||
@@ -222,17 +222,15 @@ namespace GitHub.Runner.Listener
|
||||
while (true)
|
||||
{
|
||||
token.ThrowIfCancellationRequested();
|
||||
TaskAgentMessage message = null;
|
||||
string message = null;
|
||||
try
|
||||
{
|
||||
message = await _brokerServer.GetMessageAsync(_settings.PoolId, _session.SessionId, _lastMessageId, token);
|
||||
|
||||
// Decrypt the message body if the session is using encryption
|
||||
message = DecryptMessage(message);
|
||||
message = await _brokerServer.GetMessageAsync(_settings.PoolId, _session.SessionId, null/*_lastMessageId*/, token);
|
||||
|
||||
_term.WriteLine($"{DateTime.UtcNow:u}: {message}");
|
||||
if (message != null)
|
||||
{
|
||||
_lastMessageId = message.MessageId;
|
||||
// todo: _lastMessageId = message.MessageId;
|
||||
}
|
||||
|
||||
if (encounteringError) //print the message once only if there was an error
|
||||
@@ -298,23 +296,23 @@ namespace GitHub.Runner.Listener
|
||||
}
|
||||
}
|
||||
|
||||
if (message == null)
|
||||
{
|
||||
if (heartbeat.Elapsed > TimeSpan.FromMinutes(30))
|
||||
{
|
||||
Trace.Info($"No message retrieved from session '{_session.SessionId}' within last 30 minutes.");
|
||||
heartbeat.Restart();
|
||||
}
|
||||
else
|
||||
{
|
||||
Trace.Verbose($"No message retrieved from session '{_session.SessionId}'.");
|
||||
}
|
||||
// if (message == null)
|
||||
// {
|
||||
// if (heartbeat.Elapsed > TimeSpan.FromMinutes(30))
|
||||
// {
|
||||
// Trace.Info($"No message retrieved from session '{_session.SessionId}' within last 30 minutes.");
|
||||
// heartbeat.Restart();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// Trace.Verbose($"No message retrieved from session '{_session.SessionId}'.");
|
||||
// }
|
||||
|
||||
continue;
|
||||
}
|
||||
// continue;
|
||||
// }
|
||||
|
||||
Trace.Info($"Message '{message.MessageId}' received from session '{_session.SessionId}'.");
|
||||
return message;
|
||||
// Trace.Info($"Message '{message.MessageId}' received from session '{_session.SessionId}'.");
|
||||
// return message;
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
||||
Reference in New Issue
Block a user