我有以下Spring批处理作业配置:
@Configuration
@EnableBatchProcessing
public class JobConfig {
@Autowired
private JobBuilderFactory jobBuilderFactory;
@Autowired
private StepBuilderFactory stepBuilderFactory;
@Bean
public Job job() {
return jobBuilderFactory.get("job")
.flow(stepA()).on("FAILED").to(stepC())
.from(stepA()).on("*").to(stepB()).next(stepC())
.end().build();
}
@Bean
public Step stepA() {
return stepBuilderFactory.get("stepA").tasklet(new RandomFailTasket("stepA")).build();
}
@Bean
public Step stepB() {
return stepBuilderFactory.get("stepB").tasklet(new PrintTextTasklet("stepB")).build();
}
@Bean
public Step stepC() {
return stepBuilderFactory.get("stepC").tasklet(new PrintTextTasklet("stepC")).build();
}
}
我用以下代码开始这项工作:
try {
Map<String,JobParameter> parameters = new HashMap<>();
JobParameter ccReportIdParameter = new JobParameter("03061980");
parameters.put("ccReportId", ccReportIdParameter);
jobLauncher.run(job, new JobParameters(parameters));
} catch (JobExecutionAlreadyRunningException | JobRestartException | JobInstanceAlreadyCompleteException
| JobParametersInvalidException e) {
e.printStackTrace();
}
如何从作业步骤访问ccReportId
参数?
Tasklet。execute()
方法接受参数ChunkContext
,其中Spring批处理注入所有元数据。因此,您只需通过以下元数据结构深入了解作业参数:
chunkContext.getStepContext().getStepExecution()
.getJobParameters().getString("ccReportId");
或者其他选项是通过以下方式访问作业参数映射:
chunkContext.getStepContext().getJobParameters().get("ccReportId");
但这将为您提供对象
,您需要将其转换为字符串。
我正在尝试在Spring批处理中并行运行多个作业。在谷歌上搜索了很多之后,我遇到了JobStep。有没有人使用过JobStep可以解释如何使用它来并行运行作业,或者有没有其他方法可以并行运行2个独立的作业,即当我启动批处理时,2个作业应该开始并行运行。我的要求就像 当我的应用程序启动时,两个作业都应该开始运行。使用spring batch是否可以这样做 编辑:我甚至试过这种方法 我面临着例外。sp
我们正在实施Spring批量作业, 我们需要将作业参数从Client/MASTER传递给SLAVE。CLIENT/MASTER是我们的作业和分区代码所在的位置。我们使用传递JOB参数的J Unit调用JOB。 SLAVE是定义所有步骤及其实现(读取器Writer和处理器)的地方。 我们能够以独立的方式实现这一点,但不能与客户一起实现 我们正在使用Weblogic和Spring集成以及JMS来实现同
你可以点击 “设置任务计划”来为一个批处理作业设置计划和点击 “删除任务计划”来移除计划。 如果你在“常规”选项卡选择“不管用户是否登录都要运行”,当你保存计划时你必须在 Windows 计划程序提供你的操作系统用户密码。 【注意】请在设置计划之前保存批处理作业。在运行计划之前,在连接窗口内的密码必须保存。
添加工作到批处理作业 在“常规”选项卡的底部窗格中,选择工作类型,然后如有需要浏览连接、数据库和/或模式以找出你想运行的工作。 你可以双击或拖放工作来将工作从“可用的工作”列表移动到“已选择的工作”列表。若要从已选择的工作列表删除工作,请以相同的方式移除它们。你可以在一个批处理作业中运行来自不同服务器的配置文件。 若要重新排序工作的序列,可使用 “上移”或 “下移”按钮。 如果你想备份整个服务器,
你可以点击 来为一个批处理作业设置计划和点击 来移除计划。 “小时”和“分钟”字段必需指定。如果字段没有任何值,将会使用全部值。例如,如果“星期”字段是空的,系统会视为这个字段被输入“0, 1, 2, 3, 4, 5, 6”。使用逗号以分隔值。例如,0, 1, 3, 6。使用连字号 (-),不含空格以指示值。例如,0-4。 例子:批处理作业将会在每个工作日下午 6:30 运行。 【注意】请在设置计
添加工作到批处理作业 在“常规”选项卡的底部窗格中,选择工作类型,然后如有需要浏览连接、数据库和/或模式以找出你想运行的工作。 你可以点击 或 来将已选择的工作或所有工作从“可用的工作”列表移动到“已选择的工作”列表。若要从已选择的工作列表删除已选择工作或所有工作,请点击 或 。你可以在一个批处理作业中运行来自不同服务器的配置文件。 若要重新排序工作的序列,可在已选择的工作列表中拖拉工作到所需的位