사이트에 대한 HTTP 요청을 작성한 후 응답을 검색하고 검사 한 다음 특정 키워드를 포함하는 경우 HTTP 요청 및 응답을 XML 파일에 모두 쓰는 응용 프로그램이 있습니다. . 이 응용 프로그램은 스파이더를 사용하여 사이트의 모든 URL을 매핑 한 다음 요청을 보냅니다 (사이트 맵의 각 URL은 요청을 보내는 별도의 스레드로 전달됩니다). 이렇게하면 모든 요청이 언제 전송되었는지 알 수 없게됩니다. 내가 XML 파일을 다른 형식으로 변환하기를 원한다. 따라서 요청이 끝났을 때 다음 전략을 사용합니다.특정 조건이 스레드에서 참이 될 때까지 대기
각 요청 시간을 변수에 저장합니다 (새 요청이 변수의 시간보다 늦은 시간에 전송되면 varible이 업데이트 됨). 또한이 시간을 모니터링하는 스레드를 시작하고 현재 시간과 가변 시간의 차이가 1 분 이상이라면 요청 전송이 중지되었음을 알 수 있습니다. 이러한 목적으로 다음 코드를 사용합니다.
class monitorReq implements Runnable{
Thread t;
monitorReq(){
t=new Thread(this);
t.start();
}
public void run(){
while((new Date().getTime()-last_request.getTime()<60000)){
try{
Thread.sleep(30000);//Sleep for 30 secs before checking again
}
catch(IOException e){
e.printStackTrace();
}
}
System.out.println("Last request happened 1 min ago at : "+last_request.toString());
//call method for conversion of file
}
}
이 방법이 맞습니까? 아니면 같은 것을 구현할 수있는 더 좋은 방법이 있습니까?
보내질 요청은 알 수 없습니다. – Rishabh
이 다른 접근 방식으로 답변을 업데이트했습니다. – gkamal