首页 > 解决方案 > 在指定日期/时间解锁对象

问题描述

我想实现一个功能,我将能够锁定用户帐户并存储用户帐户将被解锁的日期。

这样的事情是否可能,或者唯一的方法是使用Timer().schedule(new TimerTask()

标签: javadelaytiming

解决方案


您可以使用 DelayQueue 来达到您的目的。

https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/DelayQueue.html

您可以通过指定解锁时间将条目放入延迟队列。

创建阻塞延迟队列

BlockingQueue queue = new DelayQueue();

然后将实现延迟接口的对象放入队列中。 https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Delayed.html

public class DelayObject implements Delayed {

take()然后您可以使用阻塞队列的方法等待您的对象过期

请参阅本教程https://www.baeldung.com/java-delay-queue


推荐阅读