def METHOD_NAME(run_uuid):
    profiler = Profiler()  # TODO? are we still using the Profile?
    time_dict = dict()
    name = 'run_jump_model'
    data = get_input_dict_from_run_uuid(run_uuid)
    user_uuid = data.get('user_uuid')
    data.pop('user_uuid',None) # Remove user uuid from inputs dict to avoid downstream errors
    # can uncomment for debugging
    # import json
    # json.dump(data, open("debug_inputs.json", "w"))
    logger.info("Running JuMP model ...")
    try:
        t_start = time.time()
        julia_host = os.environ.get('JULIA_HOST', "julia")
        response = requests.post("http://" + julia_host + ":8081/reopt/", json=data)
        response_json = response.json()
        if response.status_code == 500:
            raise REoptFailedToStartError(task=name, message=response_json["error"], run_uuid=run_uuid, user_uuid=user_uuid)
        results = response_json["results"]
        if results["status"].strip().lower() != "error":
            inputs_with_defaults_set_in_julia = response_json["inputs_with_defaults_set_in_julia"]
        time_dict["pyjulia_run_reopt_seconds"] = time.time() - t_start
        results.update(time_dict)
    except Exception as e:
        if isinstance(e, REoptFailedToStartError):
            raise e
        if isinstance(e, requests.exceptions.ConnectionError):  # Julia server down
            raise REoptFailedToStartError(task=name, message="Julia server is down.", run_uuid=run_uuid, user_uuid=user_uuid)
        if "DimensionMismatch" in e.args[0]:  # JuMP may mishandle a timeout when no feasible solution is returned
            msg = "Optimization exceeded timeout: {} seconds.".format(data["Settings"]["timeout_seconds"])
            logger.info(msg)
            raise OptimizationTimeout(task=name, message=msg, run_uuid=run_uuid, user_uuid=user_uuid)
        exc_type, exc_value, exc_traceback = sys.exc_info()
        logger.error("REopt.jl raised an unexpected error: UUID: " + str(run_uuid))
        raise UnexpectedError(exc_type, exc_value, traceback.format_tb(exc_traceback), task=name, run_uuid=run_uuid,
                              user_uuid=user_uuid)
    else:
        status = results["status"]
        logger.info("REopt run completed with status {}".format(status))
        if status.strip().lower() == 'timed-out':
            msg = "Optimization exceeded timeout: {} seconds.".format(data["Settings"]["timeout_seconds"])
            logger.info(msg)
            raise OptimizationTimeout(task=name, message=msg, run_uuid=run_uuid, user_uuid=user_uuid)
        elif status.strip().lower() == 'error':
            msg = "Optimization did not complete due to an error."
            logger.info(msg)
        elif status.strip().lower() != 'optimal':
            logger.error("REopt status not optimal. Raising NotOptimal Exception.")
            raise NotOptimal(task=name, run_uuid=run_uuid, status=status.strip(), user_uuid=user_uuid)
    profiler.profileEnd()
    # TODO save profile times
    if status.strip().lower() != 'error':
        update_inputs_in_database(inputs_with_defaults_set_in_julia, run_uuid)
    process_results(results, run_uuid)
    return True