请看下面我创建的类,我打算将其用作自动过期对象。
public class SelfExpiringObject {
private boolean expired;
// other properties
public void setValidity(final int seconds) {
new Timer().schedule(new TimerTask() {
public void run() {
expired = true;
}
}, TimeUnit.SECONDS.toMillis(seconds));
}
public boolean isExpired() {
return expired;
}
}
有没有更好的替代方案可以建议呢?
想在规则引擎中用它来处理事件。其中一个场景是当收到事件时,它们会被放入会话中(使用具有自动过期属性的对象)。我希望它们仅在规则设置的有效期内存在于会话中。一旦它们过期了,它们就会从会话中移除。
DateTime
字段(例如在构造时设置为未来10秒),并在IsExpired()
中与DateTime.Now
进行比较? - Aron