gpt4 book ai didi

jakarta-ee - 在 @SessionScoped 中使用 ejb 计时器

转载 作者:行者123 更新时间:2023-12-04 18:13:32 25 4
gpt4 key购买 nike

我正在撰写一篇包含 Java EE 6 项目的论文。我需要设置一个关于餐厅服务的示例项目,该服务需要在一小时内(从电话开始)送餐。该项目将使用 CDI Api,尽管它可能适合 BPM 框架,但我只需要使用普通的 Java EE 6 Api。

我一直在考虑几种可行的选择,但唯一符合我要求的选择是使用 @SessionScoped Bean 支持用户请求。然后从那里启动一个 EJB 计时器,它将在我们的时间超时(延迟交付),除非它被用户取消(及时交付)。

我担心的是:我可以在 @SessionScoped Bean 和 EJB Timer 之间建立 1:1 的关系吗?换句话说,EJB 定时器应该只与用户相关联,如果定时器到期需要通知它。
如果我在一个好的轨道上或者我应该重新考虑架构,你能建议我吗?
非常感谢

最佳答案

关于您关于 1:1 映射的问题,规范说明如下:

For automatically created timers, the timeout method may be a method that is annotated with the Schedule annotation. Timers can be created for stateless session beans, singleton session beans, message-driven beans, and 2.1 entity beans[94]. Timers cannot be created for stateful session beans[95] ...



此外,“@SessionScoped”将您的 POJO 转换为 CDI 托管 bean,而 Timer 服务是 EJB 功能。

但是,假设您可以访问数据库,我会建议以下解决方案:
一旦客户订购了东西,就在数据库中创建一个条目,包括“创建”时间戳。
配置一个调度程序/定时器,每分钟轮询该表以验证(通过检查时间戳列)是否有任何用户需要得到通知。

关于jakarta-ee - 在 @SessionScoped 中使用 ejb 计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12138343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com