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

spring调度器还是spring批处理任务?

南门新知
2023-03-14

有一个基于某些条件删除文件的任务。这个任务应该每天在某个时间运行。我们是否应该为这个任务使用spring boot和调度器。或者spring批处理+调度器会很好。也可以在spring批处理中使用分区并行处理此任务。

谢谢

共有2个答案

闻人越
2023-03-14

要解决这个问题(不需要利用spring批处理),您可以结合两种简单的技术。为了以最简单的方式执行每天运行一次的任务,我推荐一个简单的spring调度任务。对于并行地执行多个文件操作,有相应于fork/join框架的并行流。看看这里可以得到一些想法。

何昆
2023-03-14

我不确定你这里甚至需要spring·巴奇。如果需要,spring批处理将非常有用:

  • 处理事务
  • 作业的健壮性/可重新启动性

对于您删除文件的普通情况,您可以使用的一切--某种调度程序连同spring集成。对于spring集成,您只需配置某种会触发文件删除的轮询器:

@Bean
public PollerMetadata myPoller() {
  return Pollers.cron("cron expression here")
                .get();
}
 类似资料:
  • 在我的Spring boot和Spring batch应用程序中,我有这样一个步骤: 我的作家是一个空的,如下所示: 现在,在我的处理器中,我有: 问题:由于所有对象都传递给处理器,我可以在处理器本身中处理它们,而不是使用任何转换等,因为我的目的通过使用处理器来解决,这是一个好的做法吗?或者我必须使用作家/自定义作家来完成工作?

  • 我使用spring调度器任务在固定间隔后调用类中的方法,如下所示 一旦调度程序触发init方法。init方法将使用线程池执行器来执行队列中的所有作业。 问题:执行init方法的初始线程是否会等待init方法中的所有处理(由executor service通过生成新线程来完成)完成? 调度器任务的池大小属性仅用于触发任务,而不是用于执行或处理被触发任务内部的逻辑。

  • 我正在寻找最好的解决方案,以创建一个java web应用程序,以生成Excel/PDF格式的报告。类似于Google Adwords的东西,用户可以创建日程报告,并在以后生成报告时下载。 我正在考虑开发一个java应用程序,在其中用户记录,选择一个预先定义的报告,并提供输入参数(如报告日期等),这个请求将被排队或保存为Quarts作业(首选持久队列)。一个作业将监视队列/作业并执行该作业,生成报告

  • 我定义了一个块,提交间隔为10,跳过限制为10。处理器类通过应用一些算术运算来操作字段。其中一条记录(比如第6条记录)在处理器类中发生异常。在此之后,再次处理1到5条记录,跳过第6条记录,处理7到10条记录,并将其写入XML(自定义XML编写器类)。由于处理器处理1-5条记录两次,因此预期字段值计算两次是错误的。您能否建议一种解决方案,让处理器只处理一次记录,只跳过失败的记录,并将处理后的记录写入

  • 我们开发了一个Spring批处理应用程序,其中我们有两个流程。1.向前2.向后。我们只使用文件读/写,不涉及数据库。 > 正向场景:输入文件将包含22个字段的记录。通过执行序列号生成和添加一些填充字段等操作,将22个字段转换为32个字段。根据国家代码,输出将被分成最多3个。每个块将有250K条记录。(如果记录以百万为单位,则将为同一国家生成多个文件)。 800万张唱片需要36分钟。 800万记录将