我需要启动一个长时间运行的批处理类型的工作,而长期以来我们谈论的工作可能需要几个小时。具有运行此长时间运行作业的逻辑的 ejb 将与 NoSQL 存储通信并加载数据等。
因此,我正在使用 JMS MDB 异步执行此操作。但是,由于每个作业可能需要一个小时或更长时间(假设最多 4 小时),我不希望 MDB 中的 onMessage() 方法等待这么长时间。因此,我正在考虑在 onMessage() MDB 方法中触发异步 ejb,以便在调用批处理 ejb 运行程序后立即将 MDB 返回到池中。
将异步 ejb 方法调用与 MDB 结合起来有意义吗?大多数示例建议使用 1 或其他来实现相同的目标。
如果要从 MDB 调用的 ejb 不是异步的,则 MDB 可能会等待很长时间。
请指教。