help!这个需求有更好的解决方法吗

有个需求:一个柜子,有10个格子,需要获取每个格子被开启后的关闭时间,但是目前只能解析出全部格子(10个)的锁的状态,通过这全部的锁的状态去获取格子的关闭时间,格子可以一次开一个,也可以一次开多个或者全部打开;
目前想法:因为关格子和开格子动作肯定是一起的,所以在打开格子的时候,是可以知道开了哪几个格子,锁的状态解析出来也是根据格子区分好的(map{格子号,锁状态}),但是上锁状态不是立刻就执行的,所以我想是用异步线程方法,写一个获取锁状态的,每隔几秒查一次,查看当前格子的锁的状态是否由一开始上锁-解锁-上锁的过程,但是最后需求是关门时间,这样每隔几秒就有可能造成时间差;大家们有更好的方法吗