def METHOD_NAME(self, msg: Message):
    job_status = {}
    if msg.job:
        logger.debug("Adding message job to status dictionary.")
        job_status = self.status_dict["jobs"][msg.job.index]
    if isinstance(msg, Init):
        logger.debug("Init Message Instance")
        self._delete_old_status_files()
        self._init_status_file()
        self.status_dict = self._init_job_status_dict(
            msg.timestamp, msg.run_id, msg.jobs
        )
    elif isinstance(msg, Start):
        if msg.success():
            logger.debug(f"Job {msg.job.name()} was successfully started")
            self._start_status_file(msg)
            self._add_log_line(msg.job)
            job_status.update(
                status=_JOB_STATUS_RUNNING,
                start_time=data_util.datetime_serialize(msg.timestamp),
            )
        else:
            logger.error(f"Job {msg.job.name()} FAILED to start")
            error_msg = msg.error_message
            job_status.update(
                status=_JOB_STATUS_FAILURE,
                error=error_msg,
                end_time=data_util.datetime_serialize(msg.timestamp),
            )
            self._complete_status_file(msg)
    elif isinstance(msg, Exited):
        job_status["end_time"] = data_util.datetime_serialize(msg.timestamp)
        if msg.success():
            logger.debug(f"Job {msg.job.name()} exited successfully")
            job_status["status"] = _JOB_STATUS_SUCCESS
            self._complete_status_file(msg)
        else:
            error_msg = msg.error_message
            logger.error(
                _JOB_EXIT_FAILED_STRING.format(
                    job_name=msg.job.name(),
                    exit_code=msg.exit_code,
                    error_message=msg.error_message,
                )
            )
            job_status.update(error=error_msg, status=_JOB_STATUS_FAILURE)
            # A STATUS_file is not written if there is no exit_code, i.e.
            # when the job is killed due to timeout.
            if msg.exit_code:
                self._complete_status_file(msg)
            self._dump_error_file(msg.job, error_msg)
    elif isinstance(msg, Running):
        job_status.update(
            max_memory_usage=msg.max_memory_usage,
            current_memory_usage=msg.current_memory_usage,
            status=_JOB_STATUS_RUNNING,
        )
    elif isinstance(msg, Finish):
        logger.debug("Runner finished")
        if msg.success():
            logger.debug("Runner finished successfully")
            self.status_dict["end_time"] = data_util.datetime_serialize(
                msg.timestamp
            )
            self._dump_ok_file()
    self._dump_status_json()