提供一种解决方案,自定义集群后台作业取消的函数:
def cancelAllJobs(){ nodes = exec node from pnodeRun(getRecentJobs) where endTime=NULL jobIds = exec jobId from pnodeRun(getRecentJobs) where endTime=NULL print("All running jobs number is: "+size(nodes)) if(size(nodes)>0){ for(i in 0..(size(nodes)-1)){ print("Start to cancel the job: "+(i+1)) rpc(nodes[i], cancelJob{jobIds[i]}) print("The job: "+(i+1)+" is canceled, therar are still "+(size(nodes)-i-1)+" jobs is running") } } do{ print("The server is canceling the job, please wait !") sleep(1000) } while((exec count(*) from pnodeRun(getRecentJobs) where endTime=NULL) !=0 ) print("cancel job finished !") }
然后调用cancelAllJobs函数就可以了。