private async Task MainLoop() { _logger.LogInformation("MainLoop Start"); var containerService = new ContainerService(); containerService.MessageCalled = (x => _logger.LogInformation(x)); while (!_stoppingCts.IsCancellationRequested) { try { //コンテナ情報読み込み var containerSettingList = await LoadContainerSettingsList(); ///jsonにないcontainerを削除ループ var RunningContainers = await containerService.GetAllContainer(); foreach (var rc in RunningContainers) { if (!containerSettingList.ContainerSettings.Any(x => $"{x.Image}:{x.Tag}" == $"{rc.Image}") == true) { if (IsIgnoreContainer(rc.Image)) { if (farmingSetting.ContainerRemove == FARMING_SETTING_TRUE) { _logger.LogInformation($"Container Stop & Remove:{rc.Image}"); await containerService.StopAndDeleteContainer(rc.ID); } else { _logger.LogInformation($"Container Stop :{rc.Image}"); await containerService.StopContainer(rc.ID); } } } } //起動ループ foreach (var targetContainer in containerSettingList.ContainerSettings) { string target_image = targetContainer.Image; string target_image_tag = targetContainer.Tag; await containerService.StartContainer(targetContainer); } }catch (Exception ex) { _logger.LogError(ex.ToString()); } await Task.Delay(farmingSetting.WaitTime); } }