0

我加入了一个使用 Jax-RS 的项目(最初那里也有很多基于 Spring 的控制器代码,但现在所有 URL 处理程序都使用 Jax-RS)。现在我们希望能够填充一个任务队列,这些任务应该在每个任务之间有一个小的延迟运行。延迟可以以 ms 为单位指定。我已经避免使用 Thread.sleep,因为我听说您不应该在 Java EE 中手动管理线程。在我进来之前,已经实现了一个繁忙的等待循环。

我想将此切换为异步后台任务。我当然可以让客户端以给定的延迟轮询服务器,并且只需要一个可以恢复的 AsyncResponse。但是可以多次恢复/暂停相同的 AsyncResponse 吗?该资源确实具有状态,因此可以完全放弃异步并只进行客户端轮询以处理所有这些。

许多展示异步任务的示例代码使用 Thread.sleep。在 ExecutorService 或类似的后台任务中执行此操作有多糟糕?

延迟的目的是模拟人类交互,并将一长串 JMS 消息发布到队列,但确保两个侦听器不会拾取和处理相互依赖的消息。

在客户端而不是服务器端处理这个更容易/更好吗?编写一些处理所有轮询的 JavaScript 将非常简单,所以如果这对于在服务器端处理来说似乎是个坏主意,那也没什么大不了的。

4

1 回答 1

0

该工具仅供单个用户使用,因为它是开发人员测试工具。因此,我们在客户端解决了这个问题,通过 AJAX 调用将消息推送到队列中。这对我们的目的来说很好,但如果有人有可能帮助别人的解决方案。随意放弃一个新的答案。

于 2013-07-01T06:51:24.773 回答