-
Notifications
You must be signed in to change notification settings - Fork 7
Job SPI
王宇轩 edited this page May 17, 2018
·
4 revisions
Mossrose内置了三种任务类型,并支持用户自定义扩展新的任务类型
- SimpleJob
简单任务
- DistributedJob
分布式任务,通过Slicer将作业分隔成多个子任务,子任务在集群内分布执行
- StreamingJob
分布式流式任务,解决分片非常多时DistributedJob内存占用大的问题
- MapReduceJob
Map -> Execute -> Reduce
实现接口com.jiuxian.mossrose.job.RunnableJob
package your.domain;
import com.jiuxian.mossrose.job.RunnableJob;
public interface YourJob extends RunnableJob{
// execute method
}
参考
com.jiuxian.mossrose.job.SimpleJob
com.jiuxian.mossrose.job.DistributedJob
com.jiuxian.mossrose.job.StreamingJob
实现接口com.jiuxian.mossrose.job.handler.Handler<T extends RunnableJob>
package your.domain;
import com.jiuxian.mossrose.compute.GridComputer;
public class YourJobHandler implements Handler<YourJob> {
@Override
public void handle(JobExecutor<YourJob> jobExecutor) {
// Handle the job
jobExecutor.run(yourJob -> {/* do handle */});
}
}
参考
com.jiuxian.mossrose.job.handler.impl.SimpleJobHandler
com.jiuxian.mossrose.job.handler.impl.DistributedJobHandler
com.jiuxian.mossrose.job.handler.impl.StreamingJobHandler
com.jiuxian.mossrose.job.handler.impl.MapReduceJobHandler
在classpath下新建文件META-INF/mossrose/mjob-handler.register
your.domain.YourJob=your.domain.YourJobHandler