package org.fastcatsearch.job.cluster; import java.io.IOException; import org.fastcatsearch.common.io.Streamable; import org.fastcatsearch.exception.FastcatSearchException; import org.fastcatsearch.ir.io.DataInput; import org.fastcatsearch.ir.io.DataOutput; import org.fastcatsearch.job.MasterNodeJob; import org.fastcatsearch.job.state.TaskStateService; import org.fastcatsearch.service.ServiceManager; /** * 원격 노드에서 실행중인 task list를 없애도록 mater에 요청한다. * 서버가 재실행되었거나, * */ public class ClearNodeTaskStateJob extends MasterNodeJob implements Streamable { private static final long serialVersionUID = -5476946471506917337L; private String originNodeId; public ClearNodeTaskStateJob() { } public ClearNodeTaskStateJob(String originNodeId) { this.originNodeId = originNodeId; } @Override public JobResult doRun() throws FastcatSearchException { TaskStateService taskStateService = ServiceManager.getInstance().getService(TaskStateService.class); taskStateService.clearTaskMap(originNodeId); return new JobResult(true); } @Override public void readFrom(DataInput input) throws IOException { this.originNodeId = input.readString(); } @Override public void writeTo(DataOutput output) throws IOException { output.writeString(originNodeId); } }