2.16.2. 配置异步作业


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

警告

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

重要

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

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

POST http://example.com/myservice?asynch=true
Copy to Clipboard Toggle word wrap

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

HTTP/1.1 202 Accepted
Location: http://example.com/asynch/jobs/3332334
Copy to Clipboard Toggle word wrap

URI 采用以下形式:

/asynch/jobs/{job-id}?wait={milliseconds}|nowait=true
Copy to Clipboard Toggle word wrap

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
Copy to Clipboard Toggle word wrap

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

POST http://example.com/myservice?oneway=true
Copy to Clipboard Toggle word wrap

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

注意

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat