Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在spring批处理中将当前时间戳作为作业参数传递_Java_Spring_Spring Batch_Spring Batch Admin - Fatal编程技术网

Java 在spring批处理中将当前时间戳作为作业参数传递

Java 在spring批处理中将当前时间戳作为作业参数传递,java,spring,spring-batch,spring-batch-admin,Java,Spring,Spring Batch,Spring Batch Admin,我正在使用spring批处理,但由于作业实例已存在错误,我需要在作业参数中添加当前时间。我无法确定在何处添加作业参数。这是我的密码: <step id="myStep"> <tasklet> <chunk reader="myReader" processor="myProcessor" writer="myWriter" commit-interval="6000" skip-limit="9000"> //some more code. <

我正在使用spring批处理,但由于作业实例已存在错误,我需要在作业参数中添加当前时间。我无法确定在何处添加作业参数。这是我的密码:

<step id="myStep">
 <tasklet>
  <chunk reader="myReader" processor="myProcessor" writer="myWriter" commit-interval="6000" skip-limit="9000">
  //some more code.
 </chunk>
 </tasklet>
</step>

<bean id="myReader" class="org.springframework,batch.item.database.StoredProcedueItemReader" scope="step">
 //define property for datasource , procedurename , rowmapper, parameters
 <property name="preparedStatementSetter" ref="myPreparedStatmentSetter">
</bean>

<bean id="myPreparedStatmentSetter" class="com.mypackage.MyPreparedStatementSetter" scope="step">
 <property name="kId" value="#{jobParameters[kId]}">
</bean>

我猜你已经在工作参数中加入了孩子。将以下内容添加到您的
joblaucher.run()
方法中

new JobParametersBuilder()
.addLong("time",System.currentTimeMillis())
.addLong("KId",<your KID>)
.toJobParameters();
newjobParametersBuilder()
.addLong(“时间”,System.currentTimeMillis())
.addLong(“孩子”)
.toJobParameters();

我猜您已经在工作参数中添加了KId。将以下内容添加到您的
joblaucher.run()
方法中

new JobParametersBuilder()
.addLong("time",System.currentTimeMillis())
.addLong("KId",<your KID>)
.toJobParameters();
newjobParametersBuilder()
.addLong(“时间”,System.currentTimeMillis())
.addLong(“孩子”)
.toJobParameters();
手动添加“随机”作业参数虽然可以工作,但这并不是绕过已存在错误的作业实例的最理想方法。相反,您应该考虑在工作中添加<代码> JobParametersIncrementer <代码>。Spring提供了
RunIdIncrementer
,作为这个开箱即用的实现。使用它配置的作业将如下所示:

@Bean
public Job myJob() { 
    return jobBuilderFactory.get("myJob")
                            .incrementer(runIdIncrementer())
                            .start(step1())
                            .build();
}

@Bean
public JobParametersIncrementer runIdIncrementer() {
    return new RunIdIncrementer();
}
手动添加一个“随机”作业参数虽然可以工作,但并不是绕过作业实例的最理想方法。相反,您应该考虑在工作中添加<代码> JobParametersIncrementer <代码>。Spring提供了
RunIdIncrementer
,作为这个开箱即用的实现。使用它配置的作业将如下所示:

@Bean
public Job myJob() { 
    return jobBuilderFactory.get("myJob")
                            .incrementer(runIdIncrementer())
                            .start(step1())
                            .build();
}

@Bean
public JobParametersIncrementer runIdIncrementer() {
    return new RunIdIncrementer();
}

jobParameter需要提供给joblauncher,以便告诉您如何启动作业。jobParameter与步骤或读取器配置无关。另外,建议您使用Java配置,而不是xml配置。@Sabir Khan我使用的是CommandLineJobRunnerjobParameter,需要提供给joblauncher,请详细说明如何启动作业。jobParameter与步骤或读取器配置无关。另外,建议使用Java配置而不是xml配置。@Sabir Khan我使用的是CommandLineJobRunner