JobLockService用于强制执行同步的策略是什么?它会锁定整个存储库吗?还是有另一种技术?
当我编写代码时:
String lockString = jobLockService.getLock(QName.createQName(Prefix,LocalName, Resolver));
LockToken lockToken = new LockToken();
lockToken.set(lockString);
// Something going here such as create a node or update or delete
// another somethign processes here
jobLockService.releaseLock(lockString);
您可以从该代码中注意到我使用JobLockService获取锁定后会发生什么?它是否完全锁定存储库并阻止任何其他程序访问存储库?
我问的是用于实现同步的实际技术。
另外,这里有什么关于LockToken的?它有什么好处?
在此先感谢您,非常感谢您的回复。
答案 0 :(得分:2)
JobLockService
不对存储在存储库中的实际内容进行任何锁定,更不用说锁定整个存储库了。成功调用JobLockService.getLock
后,任何线程都可以自由更新它想要编辑的节点。您的代码必须确保必须使用受控并发执行的块首先尝试获取相同的锁。
您创建的LockToken
对象似乎没用,可以删除。