我和我的团队正在开发Java EE中的Web应用程序,我们对此感到疑惑。
我们的一个班级有一定的生命周期,它会在一段时间后进入阶段。
我们怎样才能做到这一点,我们怎么做,比方说,在创造对象后10分钟,进入下一阶段,然后在2小时后,进入第三阶段,然后在50分钟后,进行。 ......等等。
由于
编辑:这个类不会只有一个实例,而是多个,可能是数百个,因此使用预定的事件将无法提供我们正在寻找的功能。
答案 0 :(得分:1)
让我们调用具有特定生命周期的类。
创建一个EJBTimer单例实例(使用@Singleton和@Startup注释),其中包含一个A实例的Set并将其注入所有A实例中。 每个A实例将负责在实例化后在定时器Set中注册自己(例如在@PostConstruct方法中)。
然后,计时器方法将在每个实例上进行迭代,并检查是否需要提升其生命周期。
答案 1 :(得分:0)
我认为有一个简单的解决方案。
System.currentTimeMillis() gives you the actual time in milliseconds (actually it returns
当前时间与UTC时间1970年1月1日午夜之间的差异,以毫秒为单位。 - Java SE 7文档
因此,在对象的构造函数中,您可以存储创建时间并定期(如运行和无限循环或其他内容)测试是否已经过了足够的时间。如果是,则可以提前,否则请注意。
这可能看起来有点暴力,但我认为它可能有用。