在户外,LockService和JobLockService有什么不同?如果我有一个节点已经存在,代表创建的其他节点的顺序,并且该节点必须在getNextSequence()之前锁定,那么我可以在哪里使用它们?
举个例子:
Node sequenceNode = getSequenceNode();
LockService(sequenceNode);
Node aNode = new Node(new NodeRef(...));
Map<QName,serialzable> props = new HashMap<QName,Serializable>();
props.put(...,sequenceNode.getNextSequence());
nodeService.setProperty(..,..,..,props);现在,知道sequenceNode不能被alfresco web客户端编辑,只会被这行代码编辑,LockService就足够了吗?
非常感谢您的回复。穆罕默德·阿姆鲁高级系统开发人员数字系列公司。
发布于 2011-07-29 15:59:49
tl;dr:使用LockService并快乐,在这种情况下它对你来说已经足够了。
LockService用于获取特定节点上的锁,而JobLockService用于处理特定任务的并发。更确切地说:
LockService。您必须指定要锁定的节点和要应用的type of lock。此服务处理的锁不绑定到特定节点,并由QNames标识。因此,JobLockService不会阻止任何节点被访问或修改,而是会禁止其他线程或外部应用程序执行相同的任务(前提是它们首先尝试获取相同的锁)。假设您有几个访问存储库的远程系统。允许您在整个系统网络上强制执行相同的任务。
如果我正确理解了您的问题,您有一个包含序列号或类似内容的节点,并且您需要getNextSequence能够可靠地提供下一个标识符。虽然在这里您可以同时使用这两个服务,但由于关键操作实际上绑定到单个节点(持有序列的那个节点),因此我在这里更倾向于使用LockService。
https://stackoverflow.com/questions/6840016
复制相似问题