Class Job
- java.lang.Object
-
- com.google.cloud.bigquery.JobInfo
-
- com.google.cloud.bigquery.Job
-
- All Implemented Interfaces:
Serializable
public class Job extends JobInfo
A Google BigQuery Job.Objects of this class are immutable. To get a
Job
object with the most recent information usereload(com.google.cloud.bigquery.BigQuery.JobOption...)
.Job
adds a layer of service-related functionality overJobInfo
.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Job.Builder
A builder forJob
objects.-
Nested classes/interfaces inherited from class com.google.cloud.bigquery.JobInfo
JobInfo.CreateDisposition, JobInfo.SchemaUpdateOption, JobInfo.WriteDisposition
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
cancel()
Sends a job cancel request.boolean
equals(Object obj)
boolean
exists()
Checks if this job exists.BigQuery
getBigQuery()
Returns the job'sBigQuery
object used to issue requests.TableResult
getQueryResults(BigQuery.QueryResultsOption... options)
Gets the query results of this job.int
hashCode()
boolean
isDone()
Checks if this job has completed its execution, either failing or succeeding.Job
reload(BigQuery.JobOption... options)
Fetches current job's latest information.Job.Builder
toBuilder()
Returns a builder for the job object.Job
waitFor(com.google.cloud.RetryOption... waitOptions)
Blocks until this job completes its execution, either failing or succeeding.-
Methods inherited from class com.google.cloud.bigquery.JobInfo
getConfiguration, getEtag, getGeneratedId, getJobId, getSelfLink, getStatistics, getStatus, getUserEmail, newBuilder, of, of, toString
-
-
-
-
Method Detail
-
exists
public boolean exists()
Checks if this job exists.Example of checking that a job exists.
if (!job.exists()) { // job doesn't exist }
- Returns:
true
if this job exists,false
otherwise- Throws:
BigQueryException
- upon failure
-
isDone
public boolean isDone()
Checks if this job has completed its execution, either failing or succeeding. If the job does not exist this method returnstrue
.Example of waiting for a job until it reports that it is done.
while (!job.isDone()) { Thread.sleep(1000L); }
- Returns:
true
if this job is inJobStatus.State.DONE
state or if it does not exist,false
if the state is notJobStatus.State.DONE
- Throws:
BigQueryException
- upon failure
-
waitFor
public Job waitFor(com.google.cloud.RetryOption... waitOptions) throws InterruptedException
Blocks until this job completes its execution, either failing or succeeding. This method returns current job's latest information. If the job no longer exists, this method returnsnull
. By default, the job status is checked using jittered exponential backoff with 1 second as an initial delay, 2.0 as a backoff factor, 1 minute as maximum delay between polls, 12 hours as a total timeout and unlimited number of attempts.Example usage of
waitFor()
.Job completedJob = job.waitFor(); if (completedJob == null) { // job no longer exists } else if (completedJob.getStatus().getError() != null) { // job failed, handle error } else { // job completed successfully }
Example usage of
waitFor()
with checking period and timeout.Job completedJob = job.waitFor( RetryOption.initialRetryDelay(Duration.ofSeconds(1)), RetryOption.totalTimeout(Duration.ofMinutes(1))); if (completedJob == null) { // job no longer exists } else if (completedJob.getStatus().getError() != null) { // job failed, handle error } else { // job completed successfully }
- Parameters:
waitOptions
- options to configure checking period and timeout- Throws:
BigQueryException
- upon failure, checkThrowable.getCause()
for detailsInterruptedException
- if the current thread gets interrupted while waiting for the job to complete
-
getQueryResults
public TableResult getQueryResults(BigQuery.QueryResultsOption... options) throws InterruptedException, JobException
Gets the query results of this job. This job must be of typeJobConfiguration.Type.QUERY
, otherwise this method will throwUnsupportedOperationException
.If the job hasn't finished, this method waits for the job to complete. However, the state of the current
Job
instance is not updated. To get the new state, callwaitFor(RetryOption...)
orreload(JobOption...)
.- Throws:
BigQueryException
- upon failureInterruptedException
JobException
-
reload
public Job reload(BigQuery.JobOption... options)
Fetches current job's latest information. Returnsnull
if the job does not exist.Example of reloading all fields until job status is DONE.
while (!JobStatus.State.DONE.equals(job.getStatus().getState())) { Thread.sleep(1000L); job = job.reload(); }
Example of reloading status field until job status is DONE.
while (!JobStatus.State.DONE.equals(job.getStatus().getState())) { Thread.sleep(1000L); job = job.reload(BigQuery.JobOption.fields(BigQuery.JobField.STATUS)); }
- Parameters:
options
- job options- Returns:
- a
Job
object with latest information ornull
if not found - Throws:
BigQueryException
- upon failure
-
cancel
public boolean cancel()
Sends a job cancel request.Example of cancelling a job.
if (job.cancel()) { return true; // job successfully cancelled } else { // job not found }
- Returns:
true
if cancel request was sent successfully,false
if job was not found- Throws:
BigQueryException
- upon failure
-
getBigQuery
public BigQuery getBigQuery()
Returns the job'sBigQuery
object used to issue requests.
-
toBuilder
public Job.Builder toBuilder()
Description copied from class:JobInfo
Returns a builder for the job object.
-
-