当前位置: 首页 > 知识库问答 >
问题:

Spring Batch:执行一个作业到底是如何结合在一起的?

凌华奥
2023-03-14

另一个让我困惑的大问题是,项目阅读器/处理器/编写器如何确切地知道他们正在使用的项目/项目块?想象我自己实现一个ItemProcessor并不太牵强,为此,我显然需要访问它正在处理的项来处理它,或者对于ItemWriter,我希望访问它想要编写的项块。

共有1个答案

彭飞虎
2023-03-14

Mkyong.com有一些不错的spring批处理教程,其中给出了一些关于作业配置实际情况的相当清晰的示例。请参见这里的基本示例。不幸的是,这些示例大多是XML格式的。这里有一篇博客文章,其中有一个使用java配置的示例。

就项目读取器/处理器/写入器的步骤类型而言。您通常会有一个读取器和至少一个处理器/写入器组合。两者都不是必需的。

在理解每一个方面,请查看接口--它们可能有助于为您理清问题。例如,下面是ItemWriter的接口:

void write(java.util.List<? extends T> items)
 类似资料:
  • 用例:步骤1:ItemReader:从数据库中读取1000个ItemProcessor块中的数据:处理这些数据。ItemWriter:将数据写入地图,以便下一步使用 步骤2:ItemReader:读取地图ItemProcessor:处理地图数据并获取新对象。ItemWriter:将新的进程对象持久化到数据库中。 现在我希望Map在整个作业中保持不变,目前我已经为Map创建了一个不同的POJO类,并

  • 我想用Quartz实现下面的算法,但不确定是否可以做到。这是我第一次尝试使用石英。 用户通知作业-此作业计算每月报告并向用户发送电子邮件,它需要用户id和用于生成自定义用户报告的其他参数 可能需要生成10,000多个这样的报告 null 如何确保每月作业在单个事务中执行,以便识别所有需要每月报告的用户,并安排作业通知他们 如何立即安排作业在创建它们的作业之后立即执行? 我用的是Spring 3.2

  • 詹金斯不会执行任何工作。查看了这个问题后,我禁用了所有从属节点,但一个简单的作业甚至不会在主节点上运行。 怎么了?

  • 我在Openshift环境中运行SCDF。我正在安排一个Spring批处理作业每5分钟运行一次。有时作业可能运行超过5分钟。在这种情况下,是否可以保留下一个计划的作业执行,直到上一个完成其执行? 我们不想改变作业执行的频率和间隔。 谢了。

  • 我试图在节点JS中的另一个cron作业中运行一个cron作业。外部cron作业在第1天只执行一次:内部cron作业在第2天执行1次:内部cron作业在第3天执行2次:内部cron作业执行3次 为什么它要多次执行,尽管我在cron作业中调用它一次