我正在使用 Spring Cloud,并为在线购物供应商提供各种微服务。一切都按预期工作。
但是,我有一个要求,我需要对客户的记录运行 cron 作业,获取客户的谁的声明日期与当前日期匹配并计算要支付的利率。这需要每天运行。
我对如何使用 MS 架构来适应这个 cron 作业感到困惑。我是否需要另一台只有这个 cron 工作的服务器?
我正在使用 Spring Cloud,并为在线购物供应商提供各种微服务。一切都按预期工作。
但是,我有一个要求,我需要对客户的记录运行 cron 作业,获取客户的谁的声明日期与当前日期匹配并计算要支付的利率。这需要每天运行。
我对如何使用 MS 架构来适应这个 cron 作业感到困惑。我是否需要另一台只有这个 cron 工作的服务器?
据我了解,您应该有一个集中的作业主管,因为多个实例可能会同时运行同一个作业。这个主管可以是一个微服务,它通过休息调用或消息队列将作业执行委托给其他服务,并等待结果。这意味着作业主管成为基础设施的一部分,如消息队列或数据库。
根据您在 SCDF 中编排批处理作业的平台(例如:cf、k8s..),您可以编写一个简单的基于 Quartz 的引导应用程序,该应用程序可以与 SCDF 的 REST 端点交互以安排在 SCDF 中定义的任务定义。
关于 Quartz + Boot 解决方案的网上文献有好几篇。
我们还在为Cloud Foundry开发原生调度器集成(通过PCF 调度器)。一旦准备就绪,您就可以在本地为 SCDF 仪表板中的任务安排(即 cron 表达式)。