• SpringBatch的核心组件JobLauncher和JobRepository


    Spring Batch的框架包括启动批处理作业的组件和存储Job执行产生的元数据。因此只需掌握配置这个基础框架在批处理应用程序中即启动Jobs并存储Job元数据.

    组件:Job Launcher和Job Repository.
    对应着的Java接口分别是:JobLauncher和 JobRepository.

    JobLauncher

    packageorg.springframework.batch.core.launch;
    (...)
    publicinterface JobLauncher {
    publicJobExecution run(Job job, JobParameters jobParameters)
    throwsJobExecutionAlreadyRunningException,
    JobRestartException,JobInstanceAlreadyCompleteException,
    JobParametersInvalidException;
    }
    

    JobLauncher接口接受两个参数:Job和JobParameters

    调用这个Job Launcher方法:可以通过java程序来通过JobLauncher来启动,也可以通过定时任务例如Quartz scheduler来启动.

    JobRepository

      JobRepository保持着所有Job执行的相关元数据,JobRepository的java接口如下:
    
    
    packageorg.springframework.batch.core.repository;
    (...)
    publicinterface JobRepository {
    booleanisJobInstanceExists(String jobName, JobParameters jobParameters);
    JobExecutioncreateJobExecution(
    StringjobName, JobParameters jobParameters)
    throwsJobExecutionAlreadyRunningException, JobRestartException,
    JobInstanceAlreadyCompleteException;
    voidupdate(JobExecution jobExecution);
    voidadd(StepExecution stepExecution);
    voidupdate(StepExecution stepExecution);
    voidupdateExecutionContext(StepExecution stepExecution);
    voidupdateExecutionContext(JobExecution jobExecution);
    StepExecutiongetLastStepExecution(JobInstance jobInstance,
    StringstepName);
    intgetStepExecutionCount(JobInstance jobInstance, String stepName);
    JobExecutiongetLastJobExecution(String jobName,
    JobParametersjobParameters);
    }
    
        JobResponseitory 接口提供所有的服务来管理批量任务的生命周期,包括创建,更新等等.一般而言job启动器会把job的创建任务委托给Job Repository来做,同时job也会在它执行的过程中来让Job Repository存储它当然的状态.
    
       Spring Batch跟外部系统进行交互的
    

    这里写图片描述

    一个job的启动通常是一个事件来进行触发的,我们会经常用到JobLauncher接口和JobParameters类,但是这个事件是可以来自任何地方的,例如一个系统的定时器;一个http请求到web控制器来启动job等这就是Spring Batch 和外界的介入点.

    另外批量Job程序基本上都是用来处理各种数据的,所以上图中我们可以看到SpringBatch的出口都是在跟数据源进行打交道,这些数据源可以是任何类型,但是文件系统和数据库是最常用的,当然它也可以支持写消息给JMS.


    —–下面有个“顶”字,你懂得O(∩_∩)O哈哈~
    —–乐于分享,共同进步!
    —–更多文章请看:http://blog.csdn.net/duruiqi_fx


  • 相关阅读:
    (四)tensorflow-基础(数据类型,张量操作,数学运算)
    (三)tensorflow-gpu2.0之线性模型
    《莫得感情的coder》Alpha冲刺Scrum meeting 3
    《莫得感情的coder》Alpha冲刺Scrum meeting2
    《莫得感情的coder》Alpha冲刺Scrum meeting1
    实验八 团队作业4:团队项目需求建模与系统设计
    莫得感情的coder 实验七 团队作业3:团队项目需求分析与原型设计
    莫得感情的coder 实验六 团队作业2:Fit U健康管理小程序
    莫得感情的coder 实验五 团队作业1:软件研发团队组建与软件案例分析
    两台主机之间单向Ping不通的问题
  • 原文地址:https://www.cnblogs.com/hainange/p/6153785.html
Copyright © 2020-2023  润新知