public async Task <string> Query(string hiveQuery) { var jobIdentifier = Guid.NewGuid(); string path = Path.Combine(_config.ResultsFolderBase, jobIdentifier + ".output"); var creationResult = await ScheduleNewJob(hiveQuery, path, jobIdentifier); var token = new CancellationToken(false); await _jobClient.WaitForJobCompletionAsync(creationResult, TimeSpan.FromMinutes(5), token); return(await ReadResults(path)); }
/// <summary> /// Method that waits for a jobDetails to complete. /// </summary> /// <param name="client">The Hadoop client to use.</param> /// <param name="job">The jobDetails to wait for.</param> /// <param name="duration">The duration to wait before timing out.</param> /// <param name="cancellationToken"> /// The Cancellation Token for the request. /// </param> /// <returns>An awaitable task that represents the action.</returns> public static async Task <JobDetails> WaitForJobCompletionAsync( this IHadoopJobClient client, JobCreationResults job, TimeSpan duration, CancellationToken cancellationToken) { return(await client.WaitForJobCompletionAsync(job.JobId, duration, cancellationToken)); }