将流作为参数传递给作业

编程入门 行业动态 更新时间:2024-10-05 15:34:42
本文介绍了将流作为参数传递给作业的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

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

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

代码场景:

考虑这个sample。此处定义了作业,但实际启动器驻留在依赖项underneath中。

因此,在sample中,我添加了一个控制器,它读取用户的输入文件,然后触发sample中定义的示例作业,该示例作业由underneath的joblauncher.run运行。

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

推荐答案

看过您提供的示例代码后,我认为您可以这样做:

1)在SimpleJobConfiguration类中声明静电哈希图。

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

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

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

3)在ItemReader的setResource方法中使用此静电地图(如您上一个问题所述)

@Override public void setResource(Resource resource) { // Get your stream from the static map Byte[] stream = (Byte[]) SimpleJobConfiguration.customStorage.get("key"); // Convert byte array to input stream InputStream is = new ByteArrayInputStream(stream); // Create springbatch input stream resource InputStreamResource res = new InputStreamResource(is); // Set resource super.setResource(res); }

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

更多推荐

将流作为参数传递给作业

本文发布于:2023-11-23 21:56:36,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1622959.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:作业   参数

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!