外部アプリケーションを呼び出している Restful Service があります。このアプリケーションにより、サービスがハングします。そのため、ユーザーが私のサービスを呼び出すと、この外部アプリケーションが原因で 1 時間かかる場合があります。外部アプリケーションの実行には数秒しかかかりません。そうでなければ、何かが間違っています。そのため、サービスのコードを最大 30 秒間実行したいと考えています。30秒を過ぎたらサービスを停止して再開したい。
これが私が望んでいるものです:
public static void main(String[] args){
Thread thread = new Thread(){
public void run(){
System.out.println("Hello Thread");
}
};
thread.start();
//if thread is alive in 30 seconds, stop and retry
}
コードを 30 秒ごとに実行したくありません。コードの実行を停止して最初からやり直したい。
サービスは次のとおりです。
@Path("/test")
@GET
@Produces(MediaType.APPLICATION_JSON )
public Response test(@QueryParam("input") String input) {
//call external application... if it hangs, it will take more than 30 seconds...
}