我正在使用 Tomcat 9.0 對資料庫中的一些資料運行 Java 代碼。我有一個通過直接訪問 xxxx:8080/myapp/myservlet 來呼叫的 servlet。完成的時間長度在 5 秒到 1 分鐘之間。
servlet 立即回傳回應,讓它在后臺繼續處理。我不確定Tomcat是否應該像這樣使用。問題是在處理實際完成之前,Web 客戶端無法訪問 xxxx:8080/myapp/myservlet。
每個新的 Web 客戶端都可以正常連接和呼叫 servlet。
我只是想以一種一勞永逸的方式呼叫我的java代碼作為后臺行程。Tomcat可以做到這一點嗎?
任何指導都會很棒
uj5u.com熱心網友回復:
將您的代碼移動到執行緒或執行程式中,并僅使用 servlet 來啟動和監視執行。
public class myservlet extends HttpServlet
{
...
Thread t = null;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/plain;charset=UTF-8");
PrintWriter out = response.getWriter();
if(t == null || !t.isAlive())
{
t = new Thread(new Runner());
t.setDaemon(true);
t.start();
out.write("Process started.\n");
}
else
out.write("Process running...\n");
}
public static class Runner implements Runnable
{
public void run()
{
// put your code here
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/504801.html
上一篇:雅加達http404