Class Job

    • 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 returns true.

        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 in JobStatus.State.DONE state or if it does not exist, false if the state is not JobStatus.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 returns null. 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, check Throwable.getCause() for details
        InterruptedException - if the current thread gets interrupted while waiting for the job to complete
      • reload

        public Job reload​(BigQuery.JobOption... options)
        Fetches current job's latest information. Returns null 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 or null 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's BigQuery object used to issue requests.
      • hashCode

        public final int hashCode()
        Overrides:
        hashCode in class JobInfo