private async void OnTimedEvent(object sender, ElapsedEventArgs e) { if (JobQueueItemEntity == null) { return; } // All job progresses must have been sent to manager. if (_jobDetailSender.DetailsCount() != 0) { return; } Stop(); if (_enableGc) { GC.Collect(); } try { var httpResponseMessage = await TrySendStatus(new JobQueueItemEntity { JobId = JobQueueItemEntity.JobId }, _cancellationTokenSource.Token); if (httpResponseMessage.IsSuccessStatusCode) { if (!Logger.IsDebugEnabled) { _exceptionLoggerHandler.ResetLastLoggedTime("Sent job status to manager again."); } Logger.DebugWithLineNumber($"{_whoAmI} : Sent job status to manager ({httpResponseMessage.RequestMessage.RequestUri}) " + $"for job ( jobId, jobName ) : ( {JobQueueItemEntity.JobId}, {JobQueueItemEntity.Name} )"); InvokeTriggerTrySendStatusSucceded(); } else { Start(); var errorMessage = $"{_whoAmI} : Send status to manager failed for job ( jobId, jobName ) : " + $"( {JobQueueItemEntity.JobId}, {JobQueueItemEntity.Name} ). Reason : {httpResponseMessage.ReasonPhrase}"; _exceptionLoggerHandler.LogError(LoggerExtensions.GetFormattedLogMessage(errorMessage)); } } catch (Exception exp) { Start(); var errorMessage = $"{_whoAmI} : Send status to manager failed for job ( jobId, jobName ) :" + $" ( {JobQueueItemEntity.JobId}, {JobQueueItemEntity.Name} )"; _exceptionLoggerHandler.LogError(LoggerExtensions.GetFormattedLogMessage(errorMessage), exp); } }
private async void OnTimedEvent(object sender, ElapsedEventArgs e) { try { await SendPing(_nodeConfiguration.BaseAddress, _nodeConfiguration.GetManagerNodeHeartbeatUri(), _cancellationTokenSource.Token); _exceptionLoggerHandler.ResetLastLoggedTime("Successfully sent Heartbeat to manager again."); } catch (Exception exception) { var currentScopeMessage = LoggerExtensions.GetFormattedLogMessage(_whoAmI + ": Heartbeat failed. Is the manager up and running?"); _exceptionLoggerHandler.LogInfo(currentScopeMessage, exception); //Logger.InfoWithLineNumber(_whoAmI + ": Heartbeat failed. Is the manager up and running?"); } }