def stop_job( self, job_id: str, ) -> bool: """Request a job to exit asynchronously. Example: >>> from ray.job_submission import JobSubmissionClient >>> client = JobSubmissionClient("http://127.0.0.1:8265") # doctest: +SKIP >>> job_id = client.submit_job(entrypoint="sleep 10") # doctest: +SKIP >>> client.stop_job(job_id) # doctest: +SKIP True Args: job_id: The job ID for the job to be stopped. Returns: True if the job was running, otherwise False. Raises: RuntimeError: If the job does not exist or if the request to the job server fails. """ logger.debug(f"Stopping job with job_id={job_id}.") r = self._do_request("POST", f"/api/jobs/{job_id}/stop") if r.status_code == 200: return JobStopResponse(**r.json()).stopped else: self._raise_error(r)
def stop_job( self, job_id: str, ) -> bool: logger.debug(f"Stopping job with job_id={job_id}.") r = self._do_request("POST", f"/api/jobs/{job_id}/stop") if r.status_code == 200: return JobStopResponse(**r.json()).stopped else: self._raise_error(r)
async def stop_job(self, req: Request) -> Response: job_id = req.match_info["job_id"] if not self.job_exists(job_id): return Response(text=f"Job {job_id} does not exist", status=aiohttp.web.HTTPNotFound.status_code) try: stopped = self._job_manager.stop_job(job_id) resp = JobStopResponse(stopped=stopped) except Exception: return Response( text=traceback.format_exc(), status=aiohttp.web.HTTPInternalServerError.status_code) return Response(text=json.dumps(dataclasses.asdict(resp)), content_type="application/json")