假设我有一个正在运行的 Java 应用程序,并且我提供了 RESTful Web 服务调用(通过 Java Jersey)。首先,我认为每次调用 HTTP RESTful 请求(或 servlet 请求)都在与主线程不同的线程上运行,对吗?如果是这样,如果我提供 RESTful 调用来终止应用程序,它如何到达主线程(由 main() 方法启动的线程)来终止它并随后停止程序?
注意:我问这个问题的原因是我需要正常关闭主线程(和程序)。
最佳答案
您的 Restful 服务应该像对待任何其他请求一样对待关闭请求。
例如,如果您的应用是在线商店,您可能会调用诸如 processOrder
或 getInventory
之类的调用。这些调用可以访问您应用程序中的许多内容,对吗?好吧,只需进行一个名为 shutdown
的新调用即可。此调用将关闭 future 调用的大门,等待现有调用完成,将内存中的信息保存到数据库,以及其他安全关闭过程。
这实际上只是另一个电话。我不会太担心“停止主方法”的调用 - 从逻辑行为角度思考,而不是技术行为。
它会出现在 Jersey,您正在寻找 client.destroy();
。
关于java - 如何通过 RESTful Web 服务调用从另一个线程(Java 中)终止主线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12199902/