当前位置: 首页 > 知识库问答 >
问题:

如何防止docker javaSpring启动应用程序退出后,计划的任务完成?

裘嘉木
2023-03-14

我有一个Java Spring启动应用程序,其中包含控制器endpoint和一个计划任务。计划的任务安排在每个午夜。我使用docker compose up-d开发这个应用程序,它运行时没有问题。

然而,在计划任务完成后,docker映像以代码1退出,没有任何错误日志。我认为docker认为进程在计划任务后完成,但由于它也被用作网络应用程序,所以不应该退出。

计划任务完成后,是否仍有防止docker映像退出的方法?

共有1个答案

刘骏祥
2023-03-14

如果你的应用程序是基于springboot的,那么它就不会使用下面的dockerfile存在,但如果它的简单java程序,那么你必须让它保持活动状态,可能会无限循环,直到进程收到终止信号。

Dockerfile

COPY ./startApp.sh .
RUN chmod a+x ./startApp.sh

斯塔普。嘘

 #!/bin/sh
 java -jar ./appname.jar
 类似资料:
  • 我在我的Windows 2008 R2机器中安排了一个任务,但它未能触发日志中的以下错误(事件日志)。 错误: 任务计划程序无法启动用户“SAFFRON3\cb_admin”的“\Hyatt_International_Distribution”任务。其他数据:错误值:2147943645。 任务计划程序启动任务引擎""进程失败,原因是"LUAIsUpatedToken"中发生错误。命令="tas

  • 本文向大家介绍如何使用PowerShell启动任务计划程序的特定任务?,包括了如何使用PowerShell启动任务计划程序的特定任务?的使用技巧和注意事项,需要的朋友参考一下 要使用PowerShell启动任务计划程序的特定任务,我们需要使用Start-ScheduledTask 命令。 当我们运行上面的命令时,我们需要提供任务名称。 例如, 当您检查以上任务状态时, 示例 输出: 要在远程计算机

  • 我们在spring boot应用程序中实现了一个计划任务,用于从MQ读取消息。在IntelliJ中调试时,我看到任务的线程被启动,然后在任务完成后进入等待状态。 这是正常的还是应该在任务完成后停止/销毁线程?此外,我们必须手动执行还是Spring会处理它(任务代码中的某些内容正在阻止它)

  • 问题内容: 我已经使用Spring Framework的注释创建了一个简单的计划任务。 现在,当不再需要时,我想停止此任务。 我知道在此方法开始时可能有一种方法可以检查一个条件标志,但这不会停止执行此方法。 Spring提供了什么来停止任务? 问题答案: 选项1:使用后处理器 为应停止调度的bean 提供并显式调用。 选项2:维护目标豆与其未来的映射 当必须停止对bean的调度时,可以查找该映射以

  • 我使用Spring Framework的注释创建了一个简单的计划任务。 我知道可以有一个选择在这个方法开始时检查一个条件标志,但这不会停止这个方法的执行。 Spring提供了什么来停止任务吗?

  • 我创建了一个使用文件系统观察器并创建作业的脚本。当文件被添加到一个文件夹时,它 重命名新添加的文件 将文件移动到新目标位置 开始下游工作流 一旦完成,工作就结束了。 我想做的是使用Windows任务计划程序来检查作业完成后立即再次运行。这样,如果一个人丢弃了一个文件夹,另一个人也可以做同样的事情。 此外,如果有其他方法来完成这项工作,我很乐意使用它。 我已尝试安排任务运行,但最小增量为1分钟 我希