示例场景: 我有两个 API(帐户 API 和向用户公开的 API),其中帐户 API 将为我提供帐户列表(最小大小大约为 500,并且当添加更多帐户时可能会增加)。我想根据过滤器获取帐户并将其他 API 中的数据公开给用户。
我正在使用 Spring @scheduled 来安排每 30 分钟获取一次帐户 API 的作业。
在单个 Pod 中,调度程序将轻松执行作业。
当应用程序复制到 Kubernetes 中的三个 Pod 时,所有调度程序将同时唤醒,这是调度程序作业的重复。
预期行为:
我希望调度程序以同步方式工作,如果一个帐户正在由一个调度程序处理,则另一个调度程序应该处理下一个帐户。基本上,我希望调度程序像多线程程序一样工作。
比如调度程序 1 处理 200 个帐户,调度程序 2 处理 200 个帐户,调度程序 3 处理 100 个帐户。
我是Spring boot应用程序开发的新手,想知道是否可以完成上面的事情。
我读到了 Shedlock,但它一次只能运行一个调度程序。但我喜欢使用所有调度程序并更快地处理帐户
我们必须实现一个轻量级的 cron 服务来处理数据平衡(您的案例中的帐户)并使用所需的信息调用 pod。