java - Spring Batch 通用作业设计
问题描述
我很难找到这个问题的正确答案。使用 Spring Batch 框架时,是否可以尝试在一个通用作业中解决所有批处理?
例如,我正在尝试使用相同的作业处理不同的文本文件(具有不同结构的文件)。
我的想法是从调度程序运行作业,将带有我要处理的文件名称的字符串传递给它。然后,我将能够实例化与要处理的文件相关的对象,并且该对象将从一个步骤传递到另一个步骤,并且在每一步中,它将能够回答与其分隔符、字段名称、插入语句,依此类推。
另一方面,我可以为每个文件编写一个作业,但是会重复很多代码。
解决方案
JobStep是您可能需要的。这是一个委托给工作的特殊步骤。因此,您可以设计一个包含多个子作业(又名类型的步骤JobStep
)的“主”作业。显然,每个子作业都可以是带有步骤等的常规 Spring Batch 作业。这种方法中的主作业是您正在寻找的“一个通用作业”。
此对象将在每一步中从一个步骤传递到另一个步骤
这可以通过将执行上下文中的对象(例如文件名)从一个步骤传递到下一个步骤来实现。您可以在将数据传递到未来步骤中找到有关此方法的更多详细信息以及代码示例。
希望这可以帮助。
推荐阅读
- python-3.x - 为什么散点图没有显示在pairplot内
- java - 有没有一种方法可以在不知道对象数量的情况下将所有实例化对象一起收集到 ArrayList 中?
- python - 我为我的掷骰子游戏添加变量过于复杂
- arrays - 为什么 strcmp() 不适用于我的数组输入?
- android - 获取数据库类的getInstance函数的应用程序上下文(android kotlin)
- python - 字典条目存储为参考后如何获取密钥
- json - 通过 XML 解析 json
- javascript - ReactJS Custom Hook 没有呈现预期的输出
- python - 高速公路:socket.gaierror:[Errno 11001] getaddrinfo 失败
- python - cv2.approxPolydp() 返回什么?