将流作为参数传递给作业

时间:2015-10-26 07:19:08

标签: spring-batch

有没有办法在通过作业Launcher启动作业时传递流,类似于传递jobParameters?

我有一个单独的服务来获取文件,然后我想启动批处理作业来加载它。

代码情景:

考虑这个application portability。这里定义了作业,但实际的启动器驻留在依赖项sample中。

所以在underneath中考虑,我添加了一个读取用户输入文件的控制器,然后触发sample中定义的样本作业,该作业由{{3}的joblauncher.run运行}}。

我正在考虑将此文件流直接传递给作业的读者,而不是将其写入外部光盘并在Reader的setSeResource中读取

1 个答案:

答案 0 :(得分:0)

在查看您提供的示例代码后,我认为您可以执行以下操作:

1)在SimpleJobConfiguration类中声明一个静态HashMap。

public static Map<String, Object> customStorage = new HashMap<String, Object>();

2)从您的服务中填充此地图

SimpleJobConfiguration.customStorage.put("key", yourStream);

3)在setResource的{​​{1}}方法中使用此静态地图(如上一个问题中所述)

ItemReader

此解决方案仅在您的服务位于jobLauncher旁边时才有效。