Java 计划模式下的多个微服务

Java 计划模式下的多个微服务,java,spring,spring-boot,docker,microservices,Java,Spring,Spring Boot,Docker,Microservices,我们有许多基于spring boot的微服务正在运行。它们中的大多数都是计划好的,需要以每天一次或每周一次的模式运行。我们正在一个单独的docker容器中部署每个微服务。我们没有使用像kubernetes这样的容器编排技术 由于进程始终处于启动状态,因此即使它什么也不做,也不会释放内存。这实际上会给运行在同一主机上的其他微服务带来问题 我们有没有办法让这些微服务或容器按照计划运行,并在完成后释放资源?任何帮助都将不胜感激。您只需使用(假设类似Unix的系统)或Windows Scheduler等

我们有许多基于spring boot的微服务正在运行。它们中的大多数都是计划好的,需要以每天一次或每周一次的模式运行。我们正在一个单独的docker容器中部署每个微服务。我们没有使用像kubernetes这样的容器编排技术

由于进程始终处于启动状态,因此即使它什么也不做,也不会释放内存。这实际上会给运行在同一主机上的其他微服务带来问题


我们有没有办法让这些微服务或容器按照计划运行,并在完成后释放资源?任何帮助都将不胜感激。

您只需使用(假设类似Unix的系统)或Windows Scheduler等等效工具按计划启动容器即可

然后让作业流程在作业完成后简单地退出。(退出主进程将停止容器)
cron
将在下一个计划时间重新启动容器

更多cron教程:


我们如何知道工作是否已完成?每次,批处理过程可能需要不同的时间,这取决于要处理的数据量。批处理作业本身知道何时完成,对吗?只要在作业完成时退出()即可,停止JVM和容器。这不需要从容器外部进行协调。非常感谢peekay。我没想到。我来检查一下out@SRaj这可能会给我们一些进一步的启示。