我正在开发一个多线程的Web应用程序。概念是客户端向服务器发送请求。服务器创建一个新线程来执行一个过程(按城镇名称删除一个foder)。 对于客户端请求和服务器响应,我使用的是RESTful Web服务。
以下是服务器的代码:
@GET
@Path("/Data_Availability/{Town}
public Response Data_availability(
@PathParam("Town") String Town) throws Exception{
Delete_Dir Procedure = new Delete_Dir();
Thread thread = new Thread(Procedure);
thread.Start();
return Response.ok("Done").build(); // Normally here is the response. But since I create
// a new thread this will be always "Done"
}
这里是程序的代码:
public class Delete_Dir implements Runnable{
String Town;
public void run() {
try {
execute();
} catch (Exception e) {
e.printStackTrace();
}
}
public Delete_Dir( String Town_ ){
Town = Town_;
}
public void execute(){
try{
File file = new File("c://" + Town);
FileUtils.deleteDirectory(file);
}catch (Exception e){
e.printStackTrace(System.out);
}
}
}
如何通过Delete_Dir类响应客户端?由于我创建了一个新线程,如果我将响应放在我放置它的位置,它将始终是"完成"。