javax.ws.rs.container.Suspended.<init>()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(10.2k)|赞(0)|评价(0)|浏览(50)

本文整理了Java中javax.ws.rs.container.Suspended.<init>()方法的一些代码示例,展示了Suspended.<init>()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Suspended.<init>()方法的具体详情如下:
包路径:javax.ws.rs.container.Suspended
类名称:Suspended
方法名:<init>

Suspended.<init>介绍

暂无

代码示例

代码示例来源:origin: jersey/jersey

@GET
  public void longGet(@Suspended final AsyncResponse ar) {
    TASK_EXECUTOR.submit(new Runnable() {

      @Override
      public void run() {
        try {
          Thread.sleep(SLEEP_TIME_IN_MILLIS);
        } catch (InterruptedException ex) {
          LOGGER.log(Level.SEVERE, "Response processing interrupted", ex);
        }
        ar.resume(NOTIFICATION_RESPONSE);
      }
    });
  }
}

代码示例来源:origin: jersey/jersey

@GET
  @Path("async")
  public void suspendViaContextExample(@Suspended final AsyncResponse ar, @QueryParam("query") final String query) {
    TASK_EXECUTOR.submit(new Runnable() {

      @Override
      public void run() {
        try {
          Thread.sleep(SLEEP_TIME_IN_MILLIS);
        } catch (InterruptedException ex) {
          LOGGER.log(Level.SEVERE, "Response processing interrupted", ex);
        }
        ar.resume("Complex result for " + query);
      }
    });
  }
}

代码示例来源:origin: prestodb/presto

@GET
@Path("{queryId}/{token}")
@Produces(MediaType.APPLICATION_JSON)
public void getQueryResults(
    @PathParam("queryId") QueryId queryId,
    @PathParam("token") long token,
    @QueryParam("maxWait") Duration maxWait,
    @QueryParam("targetResultSize") DataSize targetResultSize,
    @HeaderParam(X_FORWARDED_PROTO) String proto,
    @Context UriInfo uriInfo,
    @Suspended AsyncResponse asyncResponse)
{
  Query query = queries.get(queryId);
  if (query == null) {
    asyncResponse.resume(Response.status(Status.NOT_FOUND).build());
    return;
  }
  if (isNullOrEmpty(proto)) {
    proto = uriInfo.getRequestUri().getScheme();
  }
  asyncQueryResults(query, OptionalLong.of(token), maxWait, targetResultSize, uriInfo, proto, asyncResponse);
}

代码示例来源:origin: apache/incubator-pinot

@POST
@ManagedAsync
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Path("/segments")
@ApiOperation(value = "Upload a segment", notes = "Upload a segment as binary")
// For the multipart endpoint, we will always move segment to final location regardless of the segment endpoint.
public void uploadSegmentAsMultiPart(FormDataMultiPart multiPart,
  @ApiParam(value = "Whether to enable parallel push protection") @DefaultValue("false") @QueryParam(FileUploadDownloadClient.QueryParameters.ENABLE_PARALLEL_PUSH_PROTECTION) boolean enableParallelPushProtection,
  @Context HttpHeaders headers, @Context Request request, @Suspended final AsyncResponse asyncResponse) {
 try {
  asyncResponse.resume(uploadSegment(multiPart, enableParallelPushProtection, headers, request, true));
 } catch (Throwable t) {
  asyncResponse.resume(t);
 }
}

代码示例来源:origin: prestodb/presto

@DELETE
@Path("/v1/proxy")
@Produces(APPLICATION_JSON)
public void cancelQuery(
    @QueryParam("uri") String uri,
    @QueryParam("hmac") String hash,
    @Context HttpServletRequest servletRequest,
    @Suspended AsyncResponse asyncResponse)
{
  if (!hmac.hashString(uri, UTF_8).equals(HashCode.fromString(hash))) {
    throw badRequest(FORBIDDEN, "Failed to validate HMAC of URI");
  }
  Request.Builder request = prepareDelete().setUri(URI.create(uri));
  performRequest(servletRequest, asyncResponse, request, response -> responseWithHeaders(noContent(), response));
}

代码示例来源:origin: jersey/jersey

@GET
  @ManagedAsync
  public void longGet(@Suspended final AsyncResponse ar, @QueryParam("id") int requestId) {
    try {
      Thread.sleep(SLEEP_TIME_IN_MILLIS);
    } catch (InterruptedException ex) {
      LOGGER.log(Level.SEVERE, "Response processing interrupted", ex);
    }
    ar.resume(requestId + " - " + NOTIFICATION_RESPONSE);
  }
}

代码示例来源:origin: graphhopper/graphhopper

@POST
@Timed
@ManagedAsync
public void changeGraph(JsonFeatureCollection collection, @Suspended AsyncResponse response) {
  response.resume(graphHopper.changeGraph(collection.getFeatures()));
}

代码示例来源:origin: atomix/atomix

@GET
@Path("/{name}/value")
@Produces(MediaType.APPLICATION_JSON)
public void get(@PathParam("name") String name, @Suspended AsyncResponse response) {
 getPrimitive(name).thenCompose(value -> value.get()).whenComplete((result, error) -> {
  if (error == null) {
   response.resume(Response.ok(result).build());
  } else {
   LOGGER.warn("{}", error);
   response.resume(Response.serverError().build());
  }
 });
}

代码示例来源:origin: jersey/jersey

@GET
@Path("parameterized-async")
@ResponseBodyFromCdiBean
public void interceptedParameterizedAsync(@QueryParam("q") final String q, @Suspended final AsyncResponse response) {
  bean.setRequestId(q);
  executor.execute(new Runnable() {
    @Override
    public void run() {
      try {
        Thread.sleep(1000);
      } catch (InterruptedException ex) {
        Logger.getLogger(RequestScopedResource.class.getName()).log(Level.SEVERE, null, ex);
      }
      response.resume("this will never make it to the client");
    }
  });
}

代码示例来源:origin: jersey/jersey

@GET
@ManagedAsync
public void getMessage(@Suspended final AsyncResponse ar) throws InterruptedException {
  suspended.put(ar);
}

代码示例来源:origin: apache/incubator-pinot

@POST
@ManagedAsync
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Path("/v2/segments")
@ApiOperation(value = "Upload a segment", notes = "Upload a segment as binary")
// This behavior does not differ from v1 of the same endpoint.
public void uploadSegmentAsMultiPartV2(FormDataMultiPart multiPart,
  @ApiParam(value = "Whether to enable parallel push protection") @DefaultValue("false") @QueryParam(FileUploadDownloadClient.QueryParameters.ENABLE_PARALLEL_PUSH_PROTECTION) boolean enableParallelPushProtection,
  @Context HttpHeaders headers, @Context Request request, @Suspended final AsyncResponse asyncResponse) {
 try {
  asyncResponse.resume(uploadSegment(multiPart, enableParallelPushProtection, headers, request, true));
 } catch (Throwable t) {
  asyncResponse.resume(t);
 }
}

代码示例来源:origin: prestodb/presto

@POST
@Path("/v1/statement")
@Produces(APPLICATION_JSON)
public void postStatement(
    String statement,
    @Context HttpServletRequest servletRequest,
    @Context UriInfo uriInfo,
    @Suspended AsyncResponse asyncResponse)
{
  Request.Builder request = preparePost()
      .setUri(uriBuilderFrom(remoteUri).replacePath("/v1/statement").build())
      .setBodyGenerator(createStaticBodyGenerator(statement, UTF_8));
  performRequest(servletRequest, asyncResponse, request, response -> buildResponse(uriInfo, response));
}

代码示例来源:origin: aol/micro-server

@GET
@Produces("application/json")
public void mainfest(@Suspended AsyncResponse asyncResponse, @Context ServletContext context) {
  
  ReactiveSeq.of("/META-INF/MANIFEST.MF")
        .map(url->context.getResourceAsStream(url))
        .map(this::getManifest)
      .foldFuture(WorkerThreads.ioExecutor.get(),
        s->s.forEach(Long.MAX_VALUE,result->asyncResponse.resume(result)));
        
  
}

代码示例来源:origin: atomix/atomix

@DELETE
 @Path("/{name}/lock")
 public void unlock(@PathParam("name") String name, @Suspended AsyncResponse response) {
  getPrimitive(name).thenCompose(lock -> lock.unlock()).whenComplete((result, error) -> {
   if (error == null) {
    response.resume(Response.ok().build());
   } else {
    LOGGER.warn("{}", error);
    response.resume(Response.serverError().build());
   }
  });
 }
}

代码示例来源:origin: prestodb/presto

@GET
@Path("/v1/proxy")
@Produces(APPLICATION_JSON)
public void getNext(
    @QueryParam("uri") String uri,
    @QueryParam("hmac") String hash,
    @Context HttpServletRequest servletRequest,
    @Context UriInfo uriInfo,
    @Suspended AsyncResponse asyncResponse)
{
  if (!hmac.hashString(uri, UTF_8).equals(HashCode.fromString(hash))) {
    throw badRequest(FORBIDDEN, "Failed to validate HMAC of URI");
  }
  Request.Builder request = prepareGet().setUri(URI.create(uri));
  performRequest(servletRequest, asyncResponse, request, response -> buildResponse(uriInfo, response));
}

代码示例来源:origin: jersey/jersey

@GET
public void pickUpMessage(@Suspended final AsyncResponse ar, @QueryParam("id") final String messageId)
    throws InterruptedException {
  LOGGER.log(DEBUG, "Received GET <{0}> with context {1} on thread {2}.",
      new Object[] {messageId, ar.toString(), Thread.currentThread().getName()});
  QUEUE_EXECUTOR.submit(new Runnable() {
    @Override
    public void run() {
      try {
        suspended.put(ar);
        LOGGER.log(DEBUG, "GET <{0}> context {1} scheduled for resume.",
            new Object[] {messageId, ar.toString()});
      } catch (InterruptedException ex) {
        LOGGER.log(Level.SEVERE,
            "Waiting for a message pick-up interrupted. Cancelling context" + ar.toString(), ex);
        ar.cancel(); // close the open connection
      }
    }
  });
}

代码示例来源:origin: atomix/atomix

@DELETE
 @Path("/{name}/lock")
 public void unlock(@PathParam("name") String name, @Suspended AsyncResponse response) {
  getPrimitive(name).thenCompose(lock -> lock.unlock()).whenComplete((result, error) -> {
   if (error == null) {
    response.resume(Response.ok().build());
   } else {
    LOGGER.warn("{}", error);
    response.resume(Response.serverError().build());
   }
  });
 }
}

代码示例来源:origin: prestodb/presto

@GET
@Path("/v1/info")
@Produces(APPLICATION_JSON)
public void getInfo(
    @Context HttpServletRequest servletRequest,
    @Suspended AsyncResponse asyncResponse)
{
  Request.Builder request = prepareGet()
      .setUri(uriBuilderFrom(remoteUri).replacePath("/v1/info").build());
  performRequest(servletRequest, asyncResponse, request, response ->
      responseWithHeaders(Response.ok(response.getBody()), response));
}

代码示例来源:origin: jersey/jersey

@GET
public void pickUpMessage(@Suspended final AsyncResponse ar, @QueryParam("id") final String messageId) {
  LOGGER.log(DEBUG, "Received GET <{0}> with context {1} on thread {2}.",
      new Object[]{messageId, ar.toString(), Thread.currentThread().getName()});
  QUEUE_EXECUTOR.submit(new Runnable() {
    @Override
    public void run() {
      try {
        final String message = messages.take();
        LOGGER.log(DEBUG, "Resuming GET <{0}> context {1} with a message {2} on thread {3}.",
            new Object[]{messageId, ar.toString(), message, Thread.currentThread().getName()});
        ar.resume(message);
      } catch (InterruptedException ex) {
        LOGGER.log(Level.SEVERE,
            "Waiting for a message pick-up interrupted. Cancelling context" + ar.toString(), ex);
        ar.cancel(); // close the open connection
      }
    }
  });
}

代码示例来源:origin: atomix/atomix

@POST
@Path("/{name}/lock")
@Produces(MediaType.APPLICATION_JSON)
public void lock(@PathParam("name") String name, @Suspended AsyncResponse response) {
 getPrimitive(name).thenCompose(lock -> lock.lock()).whenComplete((result, error) -> {
  if (error == null) {
   response.resume(Response.ok().build());
  } else {
   LOGGER.warn("{}", error);
   response.resume(Response.serverError().build());
  }
 });
}

相关文章

微信公众号

最新文章

更多

Suspended类方法