Progress reporting for long running tasks#
[1]:
from oda_api.api import ProgressReporter
import time
Initialise ProgressReporter#
[2]:
pr = ProgressReporter()
Split your task into subtasks to enable progress report#
use ProgressReporter.report_progress method to send progress reports
[3]:
n_steps = 5
for step in range(n_steps):
stage = f"simulation stage {step}"
progress = 100 * step // n_steps
n_substeps = 10
# optionally define subtasks
for substep in range(n_substeps):
substage = f"subtask {substep}"
subtask_progress = 100 * substep // n_substeps
time.sleep(0.001) # replace this by actual calculation
# report progress, optionally adding extra message
message='some message'
pr.report_progress(stage=stage, progress=progress, substage=substage, subprogress=subtask_progress, message=message)