有没有办法在通过作业Launcher启动作业时传递流,类似于传递jobParameters?
我有一个单独的服务来获取文件,然后我想启动批处理作业来加载它。
代码情景:
考虑这个application portability。这里定义了作业,但实际的启动器驻留在依赖项sample中。
所以在underneath中考虑,我添加了一个读取用户输入文件的控制器,然后触发sample中定义的样本作业,该作业由{{3}的joblauncher.run运行}}。
我正在考虑将此文件流直接传递给作业的读者,而不是将其写入外部光盘并在Reader的setSeResource中读取
答案 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旁边时才有效。