![JAR search and dependency download from the Maven repository](/logo.png)
com.github.ltsopensource.example.support.JobRunnerDispatcher Maven / Gradle / Ivy
The newest version!
package com.github.ltsopensource.example.support;
import com.github.ltsopensource.core.domain.Job;
import com.github.ltsopensource.tasktracker.Result;
import com.github.ltsopensource.tasktracker.runner.JobContext;
import com.github.ltsopensource.tasktracker.runner.JobRunner;
import java.util.concurrent.ConcurrentHashMap;
/**
* 总入口,在 taskTracker.setJobRunnerClass(JobRunnerDispatcher.class)
* JobClient 提交 任务时指定 Job 类型 job.setParam("type", "aType")
* @author Robert HG ([email protected]) on 8/19/14.
*/
public class JobRunnerDispatcher implements JobRunner {
private static final ConcurrentHashMap
JOB_RUNNER_MAP = new ConcurrentHashMap();
static {
JOB_RUNNER_MAP.put("aType", new JobRunnerA()); // 也可以从Spring中拿
JOB_RUNNER_MAP.put("bType", new JobRunnerB());
}
@Override
public Result run(JobContext jobContext) throws Throwable {
Job job = jobContext.getJob();
String type = job.getParam("type");
return JOB_RUNNER_MAP.get(type).run(jobContext);
}
}
class JobRunnerA implements JobRunner {
@Override
public Result run(JobContext jobContext) throws Throwable {
// TODO A类型Job的逻辑
return null;
}
}
class JobRunnerB implements JobRunner {
@Override
public Result run(JobContext jobContext) throws Throwable {
// TODO B类型Job的逻辑
return null;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy