class_docstr: Simulator for a backend deployment with concurrent dispatch and a queue.
class_docstr_tok: ["Simulator","for","a","backend","deployment","with","concurrent","dispatch","and","a","queue","."]
docstr: Update the state of the simulator.
docstr_tok: ["Update","the","state","of","the","simulator","."]
code: def update(self) -> None:
      """Update the state of the simulator."""
      if self.use_internal_clock:
          self._internal_clock += 1
      self._update(self.time)
      state = self.state()
      logger.info(
          "\n-----------\n"
          f"Updated backend simulator state (time = {self.time}):\n"
          f"** Queued:\n{format(state.queued)}\n"
          f"** Running:\n{format(state.running)}\n"
          f"** Failed:\n{format(state.failed)}\n"
          f"** Completed:\n{format(state.completed)}\n"
          f"-----------\n"
      )
  
imports: import logging
  import random
  import time
  from dataclasses import dataclass
  from logging import Logger
  from typing import Dict, List, Optional
  from ax.core.base_trial import TrialStatus
  from ax.utils.common.logger import get_logger
label_desc: Use image node_id 9 for calling the BackendSimulator obj's underlying member method code with example usage: obj.update() without return types