class_docstr: Wrapper to represent an import task. Used to monitor task progress.
  
  There is two ways to monitor task:
  
  - either get messages collected in stream handler queue.
    Stream handler collects all messages logged in task.
  - either regularly check latest message in progress_message.
    Progress message only describe the latest step running in task.
  
  Attributes
  ----------
  task_id: str
      Used to identify the task in web API
  _notifications: Notifications
      Stream handler with shared queue to capture task messages
  _progress_message:
      Latest progress message
  _progress_value:
      Latest progress (0 <= floating value <= 1)
  _completed:
      Shared status: 0 for running, -1 for failure, 1 for success
  _lock:
      Lock to use to prevent concurrent executions
      when updating task state.
code: def set_progress(self, message: str, progress: float):
      with self._lock:
          self._progress_message.value = message.encode()
          self._progress_value.value = progress
  
imports: import json
  import logging
  import multiprocessing
  import os
  import traceback
  import uuid
  from datetime import datetime
  from queue import Empty
  import falcon
  from falcon import Request, Response
  from orion.core.io.database import DatabaseError
  from orion.core.utils import generate_temporary_file
  from orion.storage.backup import dump_database, load_database
label_desc: Use image node_id 2 for calling the ImportTask obj's underlying member method code with example usage: obj.set_progress(message, progress) without return types