package org.shanbo.feluca.node.job.task; import java.io.File; import java.util.List; import org.shanbo.feluca.node.job.JobState; import org.shanbo.feluca.node.job.TaskExecutor; import org.shanbo.feluca.util.FileUtil; import org.shanbo.feluca.util.JSONUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; /** * delete files * @author lgn * */ public class FileDeleteTask extends TaskExecutor{ JSONObject message; List<String> toDeleteFiles; String repo; boolean stop = false; public FileDeleteTask(JSONObject conf) { super(conf); } @Override public String getTaskFinalMessage() { return message.toJSONString(); } @Override protected void init(JSONObject initConf) { JSONArray toDel = initConf.getJSONObject("param").getJSONArray("files"); toDeleteFiles = JSONUtil.JSONArrayToList(toDel); repo = initConf.getJSONObject("param").getString("repo"); message = new JSONObject(); } @Override public String getTaskName() { return "filedelete"; } @Override protected void _exec() { state = JobState.RUNNING; System.out.println("delete : " + toDeleteFiles); for(int i = 0 ; i < toDeleteFiles.size();i += 1){ if (stop == true){ break; } File toDel = new File((repo + "/" + toDeleteFiles.get(i)).replaceAll("/+", "/")); if (!toDel.exists()){ message.put(toDeleteFiles.get(i), "not exist"); }else{ FileUtil.deleteFile(toDel); message.put(toDeleteFiles.get(i), "deleted"); } } if (stop == true){ state = JobState.INTERRUPTED; }else{ state = JobState.FINISHED; } } @Override public void kill() { stop = true; } }