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
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