我正在使用this curator recipe同步对多个客户端共享状态的访问。问题是,如果进程在持有锁的同时死亡,则客户端将失败并显示以下信息:
IllegalMonitorStateException You do not own the lock: /classifier-job-lock
org.apache.curator.framework.recipes.locks.InterProcessMutex.release (InterProcessMutex.java:140)
在这种情况下最好的行动计划是什么?
最佳答案
您正在使用InterProcessMutex
。行为类似于JDK锁,因为获取锁的同一线程必须是释放锁的线程。注意:此类的文档应加以改进。
而是尝试使用没有此限制的InterProcessSemaphoreMutex
。