return false; case FAILED: String oldJobId = currentJobId.getJobId(); currentJobId = BigQueryHelpers.getRetryJobId(currentJobId, lookupJob).jobId; LOG.info(
static RetryJobIdResult getRetryJobId( RetryJobId currentJobId, SerializableFunction<RetryJobId, Job> lookupJob) { for (int retryIndex = currentJobId.getRetryIndex(); ; retryIndex++) { RetryJobId jobId = new RetryJobId(currentJobId.getJobIdPrefix(), retryIndex); try { Job loadJob = lookupJob.apply(jobId);
new JobReference() .setProjectId(projectId) .setJobId(jobId.getJobId()) .setLocation(bqLocation); LOG.info( ref, jobRef, jobId.getRetryIndex()); try { jobService.startLoadJob(jobRef, loadConfig); new JobReference() .setProjectId(projectId) .setJobId(jobId.getJobId()) .setLocation(bqLocation); try { new JobReference() .setProjectId(projectId) .setJobId(jobId.getJobId()) .setLocation(bqLocation); try {
new JobReference() .setProjectId(projectId) .setJobId(jobId.getJobId()) .setLocation(bqLocation); LOG.info( ref, jobRef, jobId.getRetryIndex()); try { jobService.startCopyJob(jobRef, copyConfig); new JobReference() .setProjectId(projectId) .setJobId(jobId.getJobId()) .setLocation(bqLocation); try { new JobReference() .setProjectId(projectId) .setJobId(jobId.getJobId()) .setLocation(bqLocation); try {
.setProjectId("") .setLocation("") .setJobId(retryId.getJobId())); return null; }, retryId -> { if (retryId.getRetryIndex() < 5) { currentJob.setStatus(new JobStatus().setErrorResult(new ErrorProto())); } else { }, retryId -> { if (retryId.getJobId().equals(currentJob.getJobReference().getJobId())) { return currentJob; } else { pendingJob, j -> { succeeded.add(j.currentJobId.getJobId()); return null; });
"Failed to create job with prefix %s, " + "reached max retries: %d, last failed job: %s.", currentJobId.getJobIdPrefix(), maxRetries, BigQueryHelpers.jobToPrettyString(lastJobAttempted))); executeJob.apply(currentJobId); } catch (RuntimeException e) { LOG.warn("Job {} failed with {}", currentJobId.getJobId(), e); LOG.info("Will retry with job id {}", currentJobId.getJobId()); return; LOG.info("job {} started", currentJobId.getJobId());
PendingJob( SerializableFunction<RetryJobId, Void> executeJob, SerializableFunction<RetryJobId, Job> pollJob, SerializableFunction<RetryJobId, Job> lookupJob, int maxRetries, String jobIdPrefix) { this.executeJob = executeJob; this.pollJob = pollJob; this.lookupJob = lookupJob; this.maxRetries = maxRetries; this.currentAttempt = 0; currentJobId = new RetryJobId(jobIdPrefix, 0); this.started = false; }
@Override public String toString() { return getJobId(); } }