public void doGet(HttpServletRequest req, HttpServletResponse resp) {
		resp.setContentType("text/plain");

		AppIdentityCredential credential = new AppIdentityCredential(
				AnalysisConstants.SCOPES);

		String bigqueryProjectId = AnalysisUtility.extractParameterOrThrow(req,
				AnalysisConstants.BIGQUERY_PROJECT_ID_PARAM);
		String jobId = AnalysisUtility.extractParameterOrThrow(req,
				AnalysisConstants.BIGQUERY_JOB_ID_PARAM);
		String queueName = AnalysisUtility.extractParameterOrThrow(req,
				AnalysisConstants.QUEUE_NAME_PARAM);

		Bigquery bigquery = new Bigquery.Builder(HTTP_TRANSPORT, JSON_FACTORY,
				credential).setApplicationName(
				SystemProperty.applicationId.get()).build();

		boolean shouldRetry = false;

		try {
			Job j = bigquery.jobs().get(bigqueryProjectId, jobId).execute();
			j.getConfiguration().getLoad().getSourceUris();

			if ("DONE".equals(j.getStatus().getState())) {

				FileService fs = FileServiceFactory.getFileService();
				List<AppEngineFile> filesForJob = new ArrayList<AppEngineFile>();
				for (String f : j.getConfiguration().getLoad().getSourceUris()) {
					if (f.contains("gs://")) {
						String filename = f.replace("gs://", "/gs/");
						AppEngineFile file = new AppEngineFile(filename);
						filesForJob.add(file);

						AppEngineFile schemaFile = new AppEngineFile(filename + ".schema.json");
						filesForJob.add(schemaFile);

						log.info("Deleting: " + f + ", appengine filename: " + filename);
					}
				}

				fs.delete(filesForJob.toArray(new AppEngineFile[0]));
			} else {
				log.info("Status was not DONE, it was " + j.getStatus().getState() + ", retrying.");
				shouldRetry = true;
			}
		} catch (IOException e) {
			shouldRetry = true;
		}

		// check again in 5 mins if the job is done (and not too many retries
		String retryCountStr = req
				.getParameter(AnalysisConstants.RETRY_COUNT_PARAM);
		int retryCount = -1;
		if (AnalysisUtility.areParametersValid(retryCountStr)) {
			retryCount = Integer.parseInt(retryCountStr);
		}
		retryCount++;

		if (retryCount > 15) {
			log.warning("Tried too many times, aborting");
			shouldRetry = false;
		}

		if (shouldRetry) {
			Queue taskQueue = QueueFactory.getQueue(queueName);
			taskQueue.add(Builder
					.withUrl(
							AnalysisUtility.getRequestBaseName(req)
									+ "/deleteCompletedCloudStorageFilesTask")
					.method(Method.GET)
					.param(AnalysisConstants.BIGQUERY_JOB_ID_PARAM, jobId)
					.param(AnalysisConstants.QUEUE_NAME_PARAM, queueName)
					.param(AnalysisConstants.RETRY_COUNT_PARAM,
							String.valueOf(retryCount))
					.etaMillis(System.currentTimeMillis() + 5 * 60 * 1000)
					.param(AnalysisConstants.BIGQUERY_PROJECT_ID_PARAM,
							bigqueryProjectId));

		}

	}