RuntimeJob
class RuntimeJob(backend, api_client, client_params, job_id, program_id, service, creation_date=None, user_callback=None, result_decoder=None, image='', session_id=None, tags=None, version=None)
Bases: JobV1
, BaseRuntimeJob
Representation of a runtime primitive execution.
A new RuntimeJob
instance is returned when you call QiskitRuntimeService.run
to execute a runtime primitive, or QiskitRuntimeService.job
to retrieve a previously executed job.
If the primitive execution is successful, you can inspect the job’s status by calling status()
. Job status can be one of the JobStatus
members.
Some of the methods in this class are blocking, which means control may not be returned immediately. result()
is an example of a blocking method:
job = service.run(...)
try:
job_result = job.result() # It will block until the job finishes.
print("The job finished with result {}".format(job_result))
except RuntimeJobFailureError as ex:
print("Job failed!: {}".format(ex))
If the primitive has any interim results, you can use the callback
parameter of the run()
method to stream the interim results along with the final result. Alternatively, you can use the stream_results()
method to stream the results at a later time, but before the job finishes.
RuntimeJob constructor.
Parameters
- backend (Backend) – The backend instance used to run this job.
- api_client (RuntimeClient) – Object for connecting to the server.
- client_params (ClientParameters) – Parameters used for server connection.
- job_id (str) – Job ID.
- program_id (str) – ID of the program this job is for.
- creation_date (str | None) – Job creation date, in UTC.
- user_callback (Callable | None) – User callback function.
- result_decoder (Type[ResultDecoder] | Sequence[Type[ResultDecoder]] | None) – A
ResultDecoder
subclass used to decode job results. - image (str | None) – Runtime image used for this job: image_name:tag.
- service (qiskit_runtime_service.QiskitRuntimeService) – Runtime service.
- session_id (str | None) – Job ID of the first job in a runtime session.
- tags (List | None) – Tags assigned to the job.
- version (int | None) – Primitive version.
Attributes
ERROR
Type: str | RuntimeJobStatus
Default value: 'job incurred error'
JOB_FINAL_STATES
Type: Tuple[Any, ...]
Default value: (JobStatus.DONE, JobStatus.CANCELLED, JobStatus.ERROR)
creation_date
Job creation date in local time.
Returns
The job creation date as a datetime object, in local time, or None
if creation date is not available.
image
Return the runtime image used for the job.
Returns
image_name:tag or “” if the default image is used.
Return type
Runtime image
inputs
Job input parameters.
Returns
Input parameters used in this job.
instance
For ibm_quantum channel jobs, return the instance where the job was run. For ibm_cloud, None is returned.
primitive_id
Primitive name. :returns: Primitive this job is for.
session_id
Session ID.
Returns
Session ID. None if the backend is a simulator.
tags
Job tags.
Returns
Tags assigned to the job that can be used for filtering.
usage_estimation
Return the usage estimation infromation for this job.
Returns
quantum_seconds
which is the estimated system execution time of the job in seconds. Quantum time represents the time that the system is dedicated to processing your job.
version
Default value: 1
Methods
backend
backend(timeout=None)
Return the backend where this job was executed. Retrieve data again if backend is None.
Raises
IBMRuntimeError – If a network error occurred.
Parameters
timeout (float | None)
Return type
Backend | None
cancel
cancel()
Cancel the job.
Raises
- RuntimeInvalidStateError – If the job is in a state that cannot be cancelled.
- IBMRuntimeError – If unable to cancel job.
Return type
None
cancel_result_streaming
cancelled
cancelled()
Return whether the job has been cancelled.
Return type
bool
done
done()
Return whether the job has successfully run.
Return type
bool
error_message
error_message()
Returns the reason if the job failed.
Returns
Error message string or None
.
Return type
str | None
errored
in_final_state
in_final_state()
Return whether the job is in a final job state such as DONE
or ERROR
.
Return type
bool
job_id
job_id()
Return a unique id identifying the job.
Return type
str
logs
logs()
Return job logs.
Job logs are only available after the job finishes.
Returns
Job logs, including standard output and error.
Raises
IBMRuntimeError – If a network error occurred.
Return type
str
metrics
metrics()
Return job metrics.
Returns
-
timestamps
: Timestamps of when the job was created, started running, and finished. -
usage
: Details regarding job usage, the measurement of the amount oftime the QPU is locked for your workload.
Return type
A dictionary with job metrics including but not limited to the following
Raises
IBMRuntimeError – If a network error occurred.
properties
properties(refresh=False)
Return the backend properties for this job.
Parameters
refresh (bool) – If True
, re-query the server for the backend properties. Otherwise, return a cached version.
Returns
The backend properties used for this job, at the time the job was run, or None
if properties are not available.
Return type
BackendProperties | None
queue_info
queue_info()
Return queue information for this job.
The queue information may include queue position, estimated start and end time, and dynamic priorities for the hub, group, and project. See QueueInfo
for more information.
The queue information is calculated after the job enters the queue. Therefore, some or all of the information may not be immediately available, and this method may return None
.
Returns
A QueueInfo
instance that contains queue information for this job, or None
if queue information is unknown or not applicable.
Return type
QueueInfo | None
queue_position
queue_position(refresh=False)
Return the position of the job in the server queue.
The position returned is within the scope of the provider and may differ from the global queue position.
Parameters
refresh (bool) – If True
, re-query the server to get the latest value. Otherwise return the cached value.
Returns
Position in the queue or None
if position is unknown or not applicable.
Return type
int | None
result
result(timeout=None, decoder=None)
Return the results of the job.
Parameters
- timeout (float | None) – Number of seconds to wait for job.
- decoder (Type[ResultDecoder] | None) – A
ResultDecoder
subclass used to decode job results.
Returns
Runtime job result.
Raises
- RuntimeJobFailureError – If the job failed.
- RuntimeJobMaxTimeoutError – If the job does not complete within given timeout.
- RuntimeInvalidStateError – If the job was cancelled, and attempting to retrieve result.
Return type
Any
running
running()
Return whether the job is actively running.
Return type
bool
status
submit
submit()
Unsupported method. .. note:
This method is not supported, please use
:meth:`~qiskit_ibm_runtime.QiskitRuntimeService.run`
to submit a job.
Raises
NotImplementedError – Upon invocation.
Return type
None
update_tags
update_tags(new_tags)
Update the tags associated with this job.
Parameters
new_tags (List[str]) – New tags to assign to the job.
Returns
The new tags associated with this job.
Raises
IBMApiError – If an unexpected error occurred when communicating with the server or updating the job tags.
Return type
List[str]
usage
wait_for_final_state
wait_for_final_state(timeout=None)
Poll for the job status from the API until the status is in a final state.
Parameters
timeout (float | None) – Seconds to wait for the job. If None
, wait indefinitely.
Raises
RuntimeJobTimeoutError – If the job does not complete within given timeout.
Return type
None