package org.shanbo.feluca.node.job.local; import org.shanbo.feluca.node.job.FelucaSubJob; import org.shanbo.feluca.node.job.SubJobAllocator; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; public class LocalOneStepJob extends SubJobAllocator{ private String jobName; private String taskName; public LocalOneStepJob(String jobName, String taskName){ this.jobName = jobName; this.taskName = taskName; } @Override public JSONArray allocateSubJobs(JSONObject udconf) { JSONArray subJobSteps = new JSONArray(1);//only 1 step JSONArray concurrentLevel = new JSONArray(1);// needs only 1 thread JSONObject taskTicket = getTaskTicket(taskName); FelucaSubJob.toLeaderBeforeDecide(taskTicket); JSONObject param = udconf.getJSONObject("param"); //get user-def parameters if (param != null){ taskTicket.getJSONObject("param").putAll(param); //using user-def's parameter } concurrentLevel.add(taskTicket); subJobSteps.add(concurrentLevel); return subJobSteps; } @Override public String getJobName() { return jobName; } }