【问题标题】:Cron Job MicroservicesCron 作业微服务
【发布时间】:2018-06-13 19:59:50
【问题描述】:

我正在使用 Spring Cloud,并为在线购物供应商提供各种微服务。一切都按预期进行。

但是,我有一个要求,我需要对客户的记录运行 cron 作业,让客户的谁的声明日期与当前日期匹配并计算要支付的利率。这需要每天运行。

我对如何使用 MS 架构来适应这个 cron 作业感到困惑。我需要另一台服务器来完成这个 cron 任务吗?

【问题讨论】:

  • 您是否有“拥有”该工作的域的服务。一种方式是在那里安排它。否则,您可能希望在系统中拥有具有此职责的新服务。
  • 我可以使用不同域的新服务。但是,微服务通常具有可访问的端点。该服务将只是一个 Spring Boot 应用程序,无法从任何其他服务访问。我知道这是可以做到的,但只是想确保这是正确的做法。

标签: cron microservices cron-task spring-cloud-dataflow spring-cloud-task


【解决方案1】:

根据您在 SCDF 中编排批处理作业的平台(例如:cf、k8s..),您可以编写一个简单的基于 Quartz 的引导应用程序,该应用程序可以与 SCDF 的 REST 端点交互以安排定义的任务定义在 SCDF 中。

关于 Quartz + Boot 解决方案的网上文献有好几篇。

我们还在为Cloud Foundry(通过PCF Scheduler)开发原生调度程序集成。一旦准备就绪,您就可以在本地为 SCDF 仪表板中的任务安排(即 cron 表达式)。

【讨论】:

    【解决方案2】:

    据我了解,您应该有一个集中的作业主管,因为多个实例可能会同时运行同一个作业。 这个主管可以是一个微服务,它通过休息调用或消息队列将作业执行委托给其他服务,并等待结果。 这意味着作业主管成为基础设施的一部分,例如消息队列或数据库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      • 2018-10-28
      • 2020-08-27
      相关资源
      最近更新 更多