一定时间后触发动作

Trigger an action after a certain period of time

我和我的团队正在 Java EE 中开发一个网络应用程序,我们想知道一些事情。

我们的一个classes有一定的生命周期,它会在一定时间后通过阶段前进。

我们怎么实现这个,我们怎么办,比方说,创建对象10分钟后,进入下一阶段,然后2小时后,进入第三阶段,然后50分钟后,提前....等等。

谢谢

编辑:此 class 不会只有一个实例,而是多个实例,可能有数百个,因此使用预定事件不会提供我们正在寻找的功能。

我认为有一个简单的解决方案。

System.currentTimeMillis() gives you the actual time in milliseconds (actually it returns 

the difference, measured in milliseconds, between the current time and midnight, January 1, 1970 UTC. -- Java SE 7 documentation

因此,在对象的构造函数中,您可以存储创建时间并定期(如 运行 和无限循环之类的)测试是否已经过了足够的时间。如果是那么你可以前进,否则请注意。

这似乎有点蛮力,但我认为它可能有效。

让我们将 A 称为具有特定生命周期的 class。

创建一个 EJBTimer 单例实例(用@Singleton 和@Startup 注释)保存一组 A 实例并将其注入所有 A 实例。 每个 A 实例将负责在其实例化后在计时器 Set 中注册自己(例如在 @PostConstruct 方法中)。

定时器方法随后将迭代每个实例并检查它是否需要提升其生命周期。