private async Task PollForRunIdAsync(int runId) { _watch.Reset(); _watch.Start(); while (_isPolling) { var response = await _databricksWebApiClient.JobsRunsGetAsync(runId); JobsJson = JsonConvert.SerializeObject(response, Formatting.Indented); var state = response.state; this.Status = "Job not complete polling for completion.\r\n" + $"Job has been running for {_watch.Elapsed.Seconds} seconds"; try { if (!string.IsNullOrEmpty(state.result_state)) { _isPolling = false; IsBusy = false; _messageBoxService.ShowInformation( $"Job finnished with Status : {state.result_state}"); } else { switch (state.life_cycle_state) { case "TERMINATING": case "RUNNING": case "PENDING": break; case "SKIPPED": case "TERMINATED": case "INTERNAL_ERROR": _isPolling = false; IsBusy = false; break; } } } finally { if (_isPolling) { await Task.Delay(5000); } } } }
private async Task <object> ExecuteJobsRunsGetCommandAsync(object param) { if (!_runId.HasValue) { _messageBoxService.ShowError("You must supply 'RunId'"); return(System.Threading.Tasks.Task.FromResult <object>(null)); } try { var runResponse = await _databricksWebApiClient.JobsRunsGetAsync(_runId.Value); RunJson = JsonConvert.SerializeObject(runResponse, Formatting.Indented); } catch (Exception ex) { _messageBoxService.ShowError(ex.Message); } return(System.Threading.Tasks.Task.FromResult <object>(null)); }