請幫助 sheduler.sheduleWithFixedDelay(????, 5,3, TimeUnit.MINUTES); 我應該在這里放置什么可運行的命令?它是發送“hello”回應的網路服務器。我想為服務器答案添加延遲。
我已經修改了我的代碼,感謝馬特 現在我有可運行的命令,但沒有延遲..
void main(...){
SheduledExecutorService sheduler = Executors.newScheduledThreadPool(10);
HttpServer server = HttpServer.create(new InetSocketAddress(8001),5);
server.createContext("/test", (exchange -> {
String respText = "";
String requestText = CFG.getConntent(exchange);
if (requestText.contains("Hello")){
respText = "Hello";
}
else if (requestText.contains("Bye")){
respText = "Bye";
}
exchange.sendResponseHeaders(200, 0);
String textToSend = respText;
sheduler.sheduleWithFixedDelay(()->{
OutputStream output = exchange.getResponseBody();
try{
output.write(textToSend.getBytes(StandardCharsets.UTF_8));
output.flush();
}
catch (Exception e){}
exchange.close();
}, 0,10, TimeUnit.MINUTES);
server.setExecutor(sheduler);
server.start();
}
uj5u.com熱心網友回復:
如果我對您的理解正確,那么您需要在回復中延遲。
server.createContext("/test", (exchange -> {
String respText = "hello";
String requestText = CFG.getConntent(exchange);
exchange.sendResponseHeaders(200, 0);
sheduler.sheduleWithFixedDelay(()->{
OutputStream output = exchange.getResponseBody();
output.write(resp.Text.getBytes(UTF_8));
output.flush();
exchange.close();
}, 5,3, TimeUnit.MINUTES);
});
這應該會導致回應主體在延遲后完成發送。我認為它應該首先發送“200”ok 信號來開始回應。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/464780.html
標籤:爪哇
