我正在开发一个带有预定作业的 Spring 应用程序,该作业在一天中有时会被调用,并且持续时间可变。这项工作也仅针对一个 Pod 锁定 - 使用 shedlock。
问题是我们必须确保部署仅在工作完成后完成,否则它将被中断并且必须从头开始再次调用。
是否可以使用任何类型的 Kubernetes 配置来保持该 pod 在该作业期间“坚不可摧”? 比如开始工作时发送一个标志,完成时发送其他标志?
简单明了:不会。您的进程将收到一个 SIGTERM,然后一段时间后收到一个 SIGKILL,然后容器就会被杀死。
但是,您可以使用消息队列,该队列需要显式确认触发任务的消息,并在任务完成时确认相应的消息。