Java 是否可以配置多定时器EJB

Java 是否可以配置多定时器EJB,java,jakarta-ee,amazon-web-services,ejb-3.1,amazon-sqs,Java,Jakarta Ee,Amazon Web Services,Ejb 3.1,Amazon Sqs,我有一个EJB,它使用@Schedule注释以类似cron的方式执行一些企业逻辑 我正在使用JBoss7.1 final 问题在于,此方法正在使用来自AWS SQS服务的消息,在该API中,一次最多获取10条消息是有限制的。这导致大量消息被添加到SQS中,但没有足够快地被消耗。 因此,我想问的是,是否有一种方法可以创建一个池,让2或3个EJB同时处理来自SQS的消息。我已经添加了一条注释,以进行一些澄清,但无论如何,这里有一个想法可能适用于您的案例 使用调度EJB按顺序使用来自SQS队列的消息。

我有一个EJB,它使用@Schedule注释以类似cron的方式执行一些企业逻辑

我正在使用JBoss7.1 final

问题在于,此方法正在使用来自AWS SQS服务的消息,在该API中,一次最多获取10条消息是有限制的。这导致大量消息被添加到SQS中,但没有足够快地被消耗。
因此,我想问的是,是否有一种方法可以创建一个池,让2或3个EJB同时处理来自SQS的消息。

我已经添加了一条注释,以进行一些澄清,但无论如何,这里有一个想法可能适用于您的案例

  • 使用调度EJB按顺序使用来自SQS队列的消息。由于显然对可以获取的消息数量有限制,因此可能需要多次调用SQS服务。现在不要处理消息,只在“中间”JMS队列中发送它们

  • 使用常规消息驱动bean(MDB)处理“中间”JMS队列中的消息。您可以指定池大小等,并让应用程序。服务器管理负载。JMS消息的处理将是并行的


  • 这将符合EJB规范,并且相对干净。不过,技术上的复杂性略有增加。此外,它还假设原始问题是,顺序处理SQS消息是根本问题,而不仅仅是读取SQS消息

    难道你不能在所有的信息都被消耗之前,多次获取10条信息吗?或者,真正的问题是顺序消耗不足以处理负载,而您需要并发消耗?