Mercurial > hg > digilib-old
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) { |