You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何取消提交至Ray集群的长期运行Ray作业?

如何取消提交至Ray集群的长期运行Ray作业?

看起来你提交了一个会长期运行的Ray作业(毕竟你的square函数sleep了超级久😅),要取消它其实有几种简单的方法,我给你一步步说:

方法一:如果提交作业时记录了Job ID

你调用client.submit_job()的时候,这个方法会返回一个作业ID(job_id)。要是你当时保存了这个ID,直接用JobSubmissionClient的cancel_job()方法就能取消:

比如你可以写一个简单的取消脚本(比如叫cancel_job.py):

from ray.job_submission import JobSubmissionClient

# 和你提交作业时用的集群地址一致
client = JobSubmissionClient("https://ray.example.com")

# 替换成你的作业ID
job_id = "你的作业ID"
client.cancel_job(job_id)
print(f"已尝试取消作业 {job_id}")

要是你想提前做准备,也可以修改提交脚本submit.py,在提交时就保存并打印作业ID:

# 修改后的submit.py
from ray.job_submission import JobSubmissionClient

client = JobSubmissionClient("https://ray.example.com")
job_id = client.submit_job(
    entrypoint="python src/main.py",
    runtime_env={
        "working_dir": "./",
    },
)
# 打印并保存这个ID,方便后续取消
print(f"作业已提交,ID:{job_id}")

方法二:没记录Job ID?先找到它!

要是你当时没保存作业ID也没关系,我们可以先列出集群上的所有作业,定位到目标作业的ID:

你可以写个脚本或者在Python交互环境里执行这段代码:

from ray.job_submission import JobSubmissionClient

client = JobSubmissionClient("https://ray.example.com")
# 获取集群上所有作业的列表
jobs = client.list_jobs()
# 遍历作业,根据状态、提交脚本等信息找到目标作业
for job in jobs:
    # 比如通过运行状态、入口命令来匹配你要取消的作业
    if job.status == "RUNNING" and job.entrypoint == "python src/main.py":
        target_job_id = job.job_id
        print(f"找到目标作业:{target_job_id}")
        # 执行取消操作
        client.cancel_job(target_job_id)
        print(f"已取消作业 {target_job_id}")

方法三:用Ray CLI工具(更快捷)

如果你本地装了Ray CLI,并且能连接到目标集群,用命令行操作会更直接:

  1. 先设置集群地址:
export RAY_ADDRESS=https://ray.example.com
  1. 列出所有作业找到目标ID:
ray job list
  1. 找到ID后执行停止命令:
ray job stop <你的作业ID>

不管用哪种方法,都能快速把那个长期运行的作业停下来啦!


备注:内容来源于stack exchange,提问作者Hongbo Miao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 11:33:09