用 Lock 类的 tryLock 设置超时锁。超过时间就报错。 当 tryLock 报错了,记录信息,准备重新发起任务。 用这个超时锁,在任务获取多个锁的时候,可以不必考虑获取锁的顺序,但要做好重新发起任务的准备。