Ejemplo n.º 1
0
def _safe_get_job_status(job: BaseJob, job_id: str) -> JobStatus:

    while True:
        try:
            job_status = job.status()
            break
        except JobError as ex:
            logger.warning("FAILURE: job id: %s, "
                           "status: 'FAIL_TO_GET_STATUS' "
                           "Terra job error: %s", job_id, ex)
            time.sleep(5)
        except Exception as ex:
            raise QiskitError("FAILURE: job id: {}, "
                              "status: 'FAIL_TO_GET_STATUS' "
                              "Unknown error: ({})".format(job_id, ex)) from ex
    return job_status
Ejemplo n.º 2
0
def _safe_get_job_status(job: BaseJob, job_id: str, max_job_retries: int,
                         wait: float) -> JobStatus:
    for _ in range(max_job_retries):
        try:
            job_status = job.status()
            break
        except JobError as ex:
            logger.warning(
                "FAILURE: job id: %s, status: 'FAIL_TO_GET_STATUS' Terra job error: %s",
                job_id,
                ex,
            )
            time.sleep(wait)
        except Exception as ex:
            raise QiskitError(
                f"job id: {job_id}, status: 'FAIL_TO_GET_STATUS' Unknown error: ({ex})"
            ) from ex
    else:
        raise QiskitError(
            f"Max retry limit reached. Failed to get status for job with id {job_id}"
        )

    return job_status