处理异常后如何在java中重新启动thrift服务器?
我是java新手,已经用java编写了一个小型但相当重要的节俭服务
我注意到,有时它会停止服务而没有任何错误消息;java进程似乎只是随机死亡,没有堆栈跟踪或异常
确保此过程即使在发生错误后仍然有效的最佳方法是什么?以下是主要功能,如果有帮助的话:
public static void main(String [] args) {
try {
MyAppServiceHandler handler = new MyAppServiceHandler();
MyApp.Processor processor = new MyApp.Processor(handler);
TServerTransport serverTransport = new TServerSocket(8080);
TServer server = null;
server = new TSimpleServer(processor, serverTransport);
System.out.println("Starting thrift server...");
server.serve();
}
catch (TTransportException e) {
e.printStackTrace();
}
catch (Exception e) {
e.printStackTrace();
}
}
# 1 楼答案
我换了一个更好的解决方案
java中的
main
函数如下所示:这会导致服务器死亡,这与我希望从原始解决方案中得到的结果背道而驰。但是,java进程/服务器现在是从Supervisor启动的,它监视进程并在进程死亡时重新启动它,而最初的解决方案(使用while循环)将使服务器保持活动状态,但如果连接到端口时出现问题,则打印堆栈跟踪,这些错误消息将丢失
# 2 楼答案
如果呼叫服务被阻塞,您可以执行以下操作: