我想创建一个系统,其中有一个可以处理任务的中央处理器。任务将随机发送到中央处理器,发送的数量和时间都是随机的。
例如
- 中央处理器启动
- 任务 0 在时间 0 到来
- 任务 1 在时间 1 到来
- 任务 2 在时间 6 到来
- 任务 3 在时间 6 到来
- 任务 4 在时间 10 到来
- 中央处理器在时间 11 仍在运行
用户将决定何时启动处理器处理的任务。流程大概是这样的。处理器启动。接收到任务并且处理器处理该任务。如果处理器繁忙时收到任何任务,请将其添加到队列中。
任务是运行自动化任务,获取文件位置、设备名称、设备类型。我的第一个想法是让中央处理器成为一个 jar,并让任务创建与 java -jar CentralProcessor.jar 后的 jar 进行交互,但我认为这是不可能的。
理想情况下,任务可以从任何命令行通过命令行发送到 jar(在 jar 启动后),例如第二个 - 不是启动 jar 的那个。 Java 程序将是一个命令行程序。我该怎么做呢?我了解到一种选择是使用 HTTP,但这看起来很庞大。
最佳答案
来自评论:
所以你想要一个作为守护进程运行的处理器。它需要以某种方式接收任务。按照您的建议使用命令行会出现问题,因为 java -jarwhatever.jar 创建了一个新进程和 jvm。您真正需要的是客户端-服务器模型,它建议套接字交互。您的 CentralProcessor 是服务器,您需要一个客户端 jar,以便 java -jar Client.jar -some -args -describing -task 将连接到中央处理器并提交任务。 – 泰勒
关于java - 在命令行中与 jar 创建后交互的方法有哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34027812/