from qiskit import *
IBMQ.load_accounts(hub=None)

from qiskit.tools.jupyter import *

from qiskit.tools.monitor import job_monitor

q = QuantumRegister(2)
c = ClassicalRegister(2)
qc = QuantumCircuit(q, c)

qc.h(q[0])
qc.cx(q[0], q[1])
qc.measure(q, c);

from qiskit.providers.ibmq import least_busy
backend = least_busy(IBMQ.backends(simulator=False))
backend.name()

job = execute(qc, backend)
job_monitor(job, monitor_async=True)

%%qiskit_job_status
job2 = execute(qc, backend)

num_jobs = 5
my_jobs = []
for j in range(num_jobs):
    my_jobs.append(execute(qc, backend))
    job_monitor(my_jobs[j], monitor_async=True)

%%qiskit_job_status
my_jobs2 = []
for j in range(num_jobs):
    my_jobs2.append(execute(qc, backend))

%%qiskit_job_status
import numpy as np
my_jobs3 = np.empty(num_jobs, dtype=object)
for j in range(num_jobs):
    my_jobs3[j] = execute(qc, backend)

%%qiskit_job_status -i 5
job4 = execute(qc, backend)

%%qiskit_job_status --interval 5
job5 = execute(qc, backend)

%qiskit_backend_monitor backend

%qiskit_backend_overview

