搜索

2.16.2. 配置异步作业

download PDF

本节涵盖使用 RESTEasy 的异步作业的查询参数示例。

警告

基于角色的安全性无法在异步作业服务中使用,因为它无法移植实施。如果使用异步作业服务,则应用程序安全性必须通过 web.xml 文件中的 XML 声明来实现。

重要

虽然 GET、DELETE 和 PUT 方法可以异步调用,但这破坏了这些方法的 HTTP 1.1 合同。虽然这些调用如果多次调用,可能无法更改资源的状态,但它们会在每次调用时将服务器的状态更改为新作业条目。

asynch 查询参数用于在后台运行调用。将返回 202 接受 的响应,以及位置标头,其 URL 指向后台方法的响应位置。

POST http://example.com/myservice?asynch=true

上面的示例返回了 202 接受 的响应。它还返回一个位置标头,其 URL 指向后台方法的响应位置。位置标头的示例如下所示:

HTTP/1.1 202 Accepted
Location: http://example.com/asynch/jobs/3332334

URI 采用以下形式:

/asynch/jobs/{job-id}?wait={milliseconds}|nowait=true

GET、POST 和 DELETE 操作可以在此 URL 上执行。

  • 如果作业已完成,GET 会返回作为响应调用的 JAX-RS 资源方法。如果作业还没有完成,GET 将返回 202 Accepted 响应代码。调用 GET 不会删除作业,因此可以多次调用。
  • POST 对作业响应进行读取,并在作业完成后删除作业。
  • 调用 DELETE 来手动清理作业队列。
注意

当作业队列已满时,它会自动从内存中驱除最早的作业,而无需调用 DELETE。

GET 和 POST 操作允许使用 waitnowait 查询参数来定义最长等待时间。如果未指定 wait 参数,则操作将默认为 nowait=true,如果作业未完成,则根本不等待。wait 参数以毫秒为单位定义。

POST http://example.com/asynch/jobs/122?wait=3000

RESTEasy 支持使用 向查询参数来触发和忘记作业。

POST http://example.com/myservice?oneway=true

上面的示例返回 202 Accepted 响应,但没有创建作业。

注意

异步作业服务的配置参数可在附录的 RESTEasy Asynchronous Job Service Configuration Parameters 部分中找到。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.