code: def run(
      method: str,
      request=None,
      params=None,
      force_sync=False,
      enqueue=False,
  ):
      if len(processes(method)) and not enqueue:
          description = f"++++++++++ {method.capitalize()} Task is Already Running"
          logger.info(description)
          return None, description
  
      instance = app_instance()
      config = instance.info().get("config", {}).get(method, {})
      request = request if request else {}
      request.update(config)
  
      params = params if params is not None else {}
      request.update(params)
  
      # Support bundle/scripts over windows
      bundle_path = instance.bundle_path(request.get("model"))
      if bundle_path:
          request["bundle_path"] = bundle_path
  
      logger.info(f"{method.capitalize()} request: {request}")
      if force_sync:
          if method == "batch_infer":
              return instance.batch_infer(request), None
          if method == "scoring":
              return instance.scoring(request), None
          if method == "train":
              return instance.train(request), None
  
      return run_background_task(request, method), None
  
imports: import logging
  from monailabel.interfaces.utils.app import app_instance
  from monailabel.utils.async_tasks.utils import processes, run_background_task, stop_background_task, tasks
label_desc: Use image node_id 1 for calling the AsyncTask obj's underlying member method code with example usage: obj.run(method, request, params, force_sync, enqueue) and returns: run_background_task,  None, None,  description, instance,  None, instance,  None, instance,  None