Managing jobs
Job status
Every job has a handle (QXelJob) that you can query at any time. Look one up by id with sim.get_job(job_id), then read its status and helper fields.
Reading status
get_job() returns a fresh handle. Each call to status / is_done re-reads the latest state from the platform.
python
job = sim.get_job("job_...")
print(job.status) # PENDING / RUNNING / SUCCEEDED / FAILED / CANCELLED
print(job.is_done()) # True once status is terminalHelper fields
job.status current status string
job.is_done() True for SUCCEEDED / FAILED / CANCELLED
job.is_succeeded() True only for SUCCEEDED
job.created_at / submitted_at / started_at / completed_at timestamps
job.to_dict() the full public job record (status, timestamps, instance_type, ...)
Polling yourself
job.wait() already polls for you, but you can write your own loop when you want to do other work between checks:
python
import time
while not job.is_done():
time.sleep(5)
job = sim.get_job(job.job_id)
print(job.status)