1

我有一个我想连续运行的进程,但在不同的线程中。我怎样才能在 JBoss 7 中做到这一点?显而易见的答案是 @Asyncronous EJB 方法,其中 EJB 被配置为一次只运行一个线程(其他请求将在队列中)。

怎样才能最好地做到这一点?

4

1 回答 1

0

我相信实现这一点的一个好方法是使用来自 EJB 3.1 的 Singleton + Asynchronous annotations 的组合,您还可以使用 AccessTimeout annotation 为排队的调用提供等待超时,最后您甚至可以使用 Lock annotation 来控制 READ、WRITE 锁定如果您愿意,可以在此:

@Singleton
public class SingletonAsyncProcessor{

@Asynchronous
@AccessTimeout(5000) //times out after 5 seconds
public Future<String> addJobToQueue(String jobName) {

另请注意,您可以在类级别(所有方法将是异步的)或方法级别使用大多数这些注释。您甚至可以在 Web 容器中运行 EJB 3.1。

EJB 3.1 摇滚。

问候。

于 2013-02-02T01:42:15.643 回答