Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.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 如何在任何作业实例中使用新的reader实例?_Java_Spring_Spring Batch - Fatal编程技术网

Java 如何在任何作业实例中使用新的reader实例?

Java 如何在任何作业实例中使用新的reader实例?,java,spring,spring-batch,Java,Spring,Spring Batch,当我同时启动两个作业时,似乎在不同的作业中使用相同的reader对象。这是有问题的,因为我们在读者中保存了关于整个工作的一些信息 以下是如何设置所有内容的示例: @Bean(name = "MyJob") public Job job(Step myStep) { create job and return it } @Bean public Step myStep( @Qualifier("myReader") ItemReader<Object> reader,

当我同时启动两个作业时,似乎在不同的作业中使用相同的reader对象。这是有问题的,因为我们在读者中保存了关于整个工作的一些信息

以下是如何设置所有内容的示例:

@Bean(name = "MyJob")
public Job job(Step myStep) { create job and return it }

@Bean
public Step myStep(
        @Qualifier("myReader") ItemReader<Object> reader,
        @Qualifier("myWriter") ItemWriter<Object> writer) 
{ create step and return it }

@Bean
public ItemReader<Object> myReader(
        @Qualifier("dataSource") DataSource dataSource) { returns new MyReaderObject }
@Bean(name=“MyJob”)
公共作业作业(步骤myStep){创建作业并返回它}
@豆子
公共步骤myStep(
@限定符(“myReader”)ItemReader,
@限定符(“myWriter”)ItemWriter(项目编写器)
{创建步骤并返回它}
@豆子
公共项目阅读器myReader(
@限定符(“数据源”)数据源数据源){返回新的MyReaderObject}

MyReaderObject
本身也有@StepScope。有什么东西不见了吗?如何才能使每个作业实例都有自己的读卡器对象?

您是否在这些批中共享spring配置?如何使用调度程序启动批处理作业?一些细节和配置可能会有所帮助。不同的spring批处理作业不应相互干扰-两个批处理的干扰听起来并不典型Hi@SaifuddinMerchant,感谢您的输入!是的,它们共享配置。它们是使用JMS侦听器启动的,JMS侦听器从队列接收消息,并使用JobLauncher的(通过JobLauncher JobLauncher=context.getBean(JobLauncher.class);)运行方法启动。如何区分两个不同的作业?上一行似乎表明您正在运行相同的作业。请共享您的代码/配置,以便我们能够更好地诊断问题。我已使用一些代码编辑了问题。谢谢你的帮助!您是否在这些批中共享spring配置?如何使用调度程序启动批处理作业?一些细节和配置可能会有所帮助。不同的spring批处理作业不应相互干扰-两个批处理的干扰听起来并不典型Hi@SaifuddinMerchant,感谢您的输入!是的,它们共享配置。它们是使用JMS侦听器启动的,JMS侦听器从队列接收消息,并使用JobLauncher的(通过JobLauncher JobLauncher=context.getBean(JobLauncher.class);)运行方法启动。如何区分两个不同的作业?上一行似乎表明您正在运行相同的作业。请共享您的代码/配置,以便我们能够更好地诊断问题。我已使用一些代码编辑了问题。谢谢你的帮助!