在Java / Spring中用于同步服务的模块是什么?

时间:2018-02-18 12:10:22

标签: spring spring-boot spring-batch

我愿意用Java构建同步服务。用例是,我从交换服务(通过Exchange Web服务)获取数据,稍微规范化数据(可能是进程),然后通过GraphQL将其写入后端。我已经看过弹簧模块了,但我不太清楚要使用哪些模块。我找到了弹簧批和弹簧石英。 同步必须触发所有X秒,从Exchange获取信息,查看后端中的内容并更新所需内容。

你们有什么建议吗?我之前开始在nodejs中实现这一切,但由于它必须同时在Windows服务器和Docker / Linux上运行,因此保持平稳运行真的很痛苦(主要是因为将nodejs捆绑到Windows应用程序很痛苦)

1 个答案:

答案 0 :(得分:1)

Spring Batch&的区别石英:

  1. Spring Batch和Quartz有不同的目标。 Spring Batch提供处理大量数据的功能,Quartz提供计划任务的功能。

  2. 因此,Quartz可以补充Spring Batch,常见的组合是使用Quartz作为使用 Cron 表达式的Spring Batch作业的触发器。

  3. 结论:所以基本上Spring Batch定义了应该做什么,Quartz定义了什么时候应该完成。

    Quartz是一个调度框架。喜欢"每个小时或每个月的每个星期五执行一些事情"

    Spring Batch是一个框架,用于定义"某些东西"将被执行。  您可以定义包含步骤的作业。通常,步骤由项目阅读器,可选项目处理器和项目编写器组成,但您可以定义自定义词干。您还可以告诉Spring批处理每10个项目和许多其他内容。

    您可以使用Quartz来启动Spring Batch作业。

    推荐用于您的用例: 您希望在特定间隔后触发石英计划。

    参考:https://projects.spring.io/spring-batch/faq.html