我有一个在nohup中运行的Java进程,该进程连续从MQ读取消息。什么是以受控方式停止该进程而不是终止该进程以使其突然停止的最佳方法。
当前,我已编码为将传入消息与“ STOP_THE_PROCESS”字符串进行匹配,如果匹配,它将停止该过程。还有其他更好的方法吗?
您可以在Java应用程序中添加所谓的“关闭端口”:应用程序将在特定端口上监听关闭命令,并在接收时正常终止。
[Apache Tomcat使用这种方法,带有专用的tcp套接字。
基于JMX的示例实现:https://dzone.com/articles/java-jmx-shutdown-example