comparison servlet3/src/main/java/digilib/servlet/Scaler.java @ 925:66f1ba72d07b

added timeout-parameter and timeout-handler to AsyncServletWorker. added stopNow abort method to ImageWorker.
author robcast
date Mon, 19 Dec 2011 21:39:17 +0100
parents 91e5f20a7c56
children 333e60e5cae9
comparison
equal deleted inserted replaced
924:6853c02b238b 925:66f1ba72d07b
3 import java.io.File; 3 import java.io.File;
4 import java.io.IOException; 4 import java.io.IOException;
5 import java.util.List; 5 import java.util.List;
6 6
7 import javax.servlet.AsyncContext; 7 import javax.servlet.AsyncContext;
8 import javax.servlet.AsyncEvent;
9 import javax.servlet.AsyncListener;
8 import javax.servlet.ServletConfig; 10 import javax.servlet.ServletConfig;
9 import javax.servlet.ServletContext; 11 import javax.servlet.ServletContext;
10 import javax.servlet.ServletException; 12 import javax.servlet.ServletException;
11 import javax.servlet.annotation.WebServlet; 13 import javax.servlet.annotation.WebServlet;
12 import javax.servlet.http.HttpServlet; 14 import javax.servlet.http.HttpServlet;
29 public class Scaler extends HttpServlet { 31 public class Scaler extends HttpServlet {
30 32
31 private static final long serialVersionUID = 5289386646192471549L; 33 private static final long serialVersionUID = 5289386646192471549L;
32 34
33 /** digilib servlet version (for all components) */ 35 /** digilib servlet version (for all components) */
34 public static final String version = "2.0b1 async"; 36 public static final String version = "2.0b2 async";
35 37
36 /** servlet error codes */ 38 /** servlet error codes */
37 public static enum Error {UNKNOWN, AUTH, FILE, IMAGE}; 39 public static enum Error {UNKNOWN, AUTH, FILE, IMAGE};
38 40
39 /** type of error message */ 41 /** type of error message */
263 response.sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE); 265 response.sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE);
264 return; 266 return;
265 } 267 }
266 268
267 // worker job is done asynchronously 269 // worker job is done asynchronously
268 AsyncContext asyncCtx = request.startAsync(request, response); 270 AsyncContext asyncCtx = request.startAsync(request, response);
269 // create job 271 // create job
270 AsyncServletWorker job = new AsyncServletWorker(dlConfig, jobTicket, asyncCtx, errMsgType, startTime); 272 AsyncServletWorker job = new AsyncServletWorker(dlConfig, jobTicket, asyncCtx, errMsgType, startTime);
273 // AsyncServletWorker is its own AsyncListener
274 asyncCtx.addListener(job);
271 // submit job 275 // submit job
272 imageJobCenter.submit(job); 276 imageJobCenter.submit(job);
273 // we're done for now 277 // we're done for now
274 278
275 } catch (ImageOpException e) { 279 } catch (ImageOpException e) {