package org.fastcatsearch.job.indexing;
import java.io.IOException;
import java.util.List;
import java.util.Map.Entry;
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.Job;
import org.fastcatsearch.job.result.BasicStringResult;
import org.fastcatsearch.job.state.IndexingTaskKey;
import org.fastcatsearch.job.state.TaskKey;
import org.fastcatsearch.job.state.TaskState;
import org.fastcatsearch.job.state.TaskStateService;
import org.fastcatsearch.service.ServiceManager;
import org.json.JSONException;
import org.json.JSONStringer;
//삭제예정.
@Deprecated
public class GetIndexingTaskStateJob extends Job implements Streamable {
private static final long serialVersionUID = -1622828261008438014L;
@Override
public JobResult doRun() throws FastcatSearchException {
JSONStringer stringer = new JSONStringer();
try {
TaskStateService taskStateService = ServiceManager.getInstance().getService(TaskStateService.class);
List<Entry<TaskKey, TaskState>> taskEntryList = null;//taskStateService.getTaskEntryList(IndexingTaskKey.class);
stringer.object().key("taskState").array();
if(taskEntryList != null){
for(Entry<TaskKey, TaskState> entry : taskEntryList){
TaskKey taskKey = entry.getKey();
TaskState taskState = entry.getValue();
stringer.object()
.key("summary").value(taskKey.getSummary() + " " + taskState.getSummary())
.key("state").value(taskState.getState())
.key("step").value(taskState.getStep())
.key("isScheduled").value(taskState.isScheduled())
.key("progress").value(taskState.getProgressRate())
.key("startTime").value(taskState.getStartTime())
.key("endTime").value(taskState.getStartTime())
.key("elapsed").value(taskState.getElapsedTime())
.endObject();
}
}
stringer.endArray().endObject();
BasicStringResult result = new BasicStringResult();
result.setResult(stringer.toString());
return new JobResult(result);
} catch (JSONException e) {
logger.debug("exception occurs : {}",e.getMessage());
} finally {
}
return new JobResult(false);
}
@Override
public void readFrom(DataInput input) throws IOException { }
@Override
public void writeTo(DataOutput output) throws IOException { }
}