How to query a lattice execution status#

Let us first define a workflow that performs a simple task.

[1]:
import time

import covalent as ct

@ct.electron
def add(x, y):
    return x + y

@ct.electron
def multiply(x, y):
    time.sleep(5)
    return x * y

@ct.lattice
def workflow(x, y):
    res_1 = add(x=x, y=y)
    return multiply(x=res_1, y=y)

Next, we dispatch the workflow for some parameters.

[2]:
dispatch_id = ct.dispatch(workflow)(x=2, y=3)

Next, we query the result object using the dispatch id using ct.get_result.

[3]:
result = ct.get_result(dispatch_id=dispatch_id, wait=False)

Tip

If we want to only retrieve the result when the computation is completed, we set wait=True. Otherwise, we set wait=False.

As we can see below, while the computations are running, the status is RUNNING.

[4]:
print(result.status)
RUNNING

If we want to check the computation status again, it is very important that we re-retrieve the results object.

[5]:
result = ct.get_result(dispatch_id=dispatch_id, wait=True)
print(result.status)
RUNNING