如何从一个程序启动另一个程序
How to start one program from another program
我有两个项目,project1 和 project2。
案例一:
Project1 和 Project2 在同一台机器上。如果 project2 崩溃或终止,Project1 应该重新启动 project2。
案例二:
Project1 和 Project2 在不同的机器上。如果 project2 崩溃或终止,Project1 应该重新启动 project2。
这些是 java 项目。
我该如何完成上述任务?
编辑:
我想到了以下解决方案:
- 如果项目在同一台机器上,那么我可以将 Project2 保留在 Project1 的类路径中,然后从 project1 重新启动 project2。但有个问题。然后这两个实体将成为一个程序。
- 如果这些项目在不同的计算机上,那么我可以有一些第三个程序 运行 以及我认为永远不会崩溃的 project2。而这第三个程序可以恢复项目2。
不确定,关于我的解决方案。需要您的输入。
我们使用 RabbitMQ:项目 1 使用 RabbitMQ 发送关于任务的请求,项目 2 发送关于他使用 RabbitMQ 的工作的通知。如果 Project2 在一段时间内(例如,在 30 秒内)未发送通知,则 Project1 仅使用 OS 命令启动新的 Project2 实例或发送请求 Project3 在某些机器(如 Project1)中仅用于启动 Project1 实例使用 OS 命令。
当然,您可以使用任何消息代理,而不仅仅是 RabbitMQ。
But, there is a problem. Then these two entities will become a single
program.
不,最好将所有项目作为单独的程序启动,如果Project2 出现内存不足等错误,Project1 也会死掉。使用 ProcessBuilder 等运行 Java 应用程序完全不是问题。
情况 1:一个应用程序可以启动另一个应用程序:ProcessBuilder
Executing another application from Java
情况2:问的几乎不可能。您需要项目 2 的机器中的东西 运行。
我有两个项目,project1 和 project2。
案例一: Project1 和 Project2 在同一台机器上。如果 project2 崩溃或终止,Project1 应该重新启动 project2。
案例二: Project1 和 Project2 在不同的机器上。如果 project2 崩溃或终止,Project1 应该重新启动 project2。
这些是 java 项目。
我该如何完成上述任务?
编辑:
我想到了以下解决方案:
- 如果项目在同一台机器上,那么我可以将 Project2 保留在 Project1 的类路径中,然后从 project1 重新启动 project2。但有个问题。然后这两个实体将成为一个程序。
- 如果这些项目在不同的计算机上,那么我可以有一些第三个程序 运行 以及我认为永远不会崩溃的 project2。而这第三个程序可以恢复项目2。
不确定,关于我的解决方案。需要您的输入。
我们使用 RabbitMQ:项目 1 使用 RabbitMQ 发送关于任务的请求,项目 2 发送关于他使用 RabbitMQ 的工作的通知。如果 Project2 在一段时间内(例如,在 30 秒内)未发送通知,则 Project1 仅使用 OS 命令启动新的 Project2 实例或发送请求 Project3 在某些机器(如 Project1)中仅用于启动 Project1 实例使用 OS 命令。
当然,您可以使用任何消息代理,而不仅仅是 RabbitMQ。
But, there is a problem. Then these two entities will become a single program.
不,最好将所有项目作为单独的程序启动,如果Project2 出现内存不足等错误,Project1 也会死掉。使用 ProcessBuilder 等运行 Java 应用程序完全不是问题。
情况 1:一个应用程序可以启动另一个应用程序:ProcessBuilder
Executing another application from Java
情况2:问的几乎不可能。您需要项目 2 的机器中的东西 运行。