陷入大麻烦,
有谁能告诉我,我怎么能通过密码获得写锁。 注意:我将使用REST API,所以我的密码将在php中。
已编辑: 情形:
我正在使用Neo4j REST服务器和PHP来访问它。
现在我创建了一个节点,说'counter-node',它会生成新的用户ID。逻辑只是将1添加到先前的值。
现在如果两个用户同时进入,则第一个用户在将其更新为1之前读取“计数器节点”值,然后第二个用户读取它。因此,“反节点”中的值不符合预期。
任何帮助
答案 0 :(得分:1)
您不需要显式获取写锁。您在事务中修改的所有节点都会自动写入锁定。
所以如果你在你的逻辑中这样做:
start tx
increment counter node
read the value of the counter node and set it on the user node as ID
commit tx
没有两个用户会获得相同的ID。
答案 1 :(得分:0)
Neo4j的热门APOC插件提供了一系列明确的锁定程序,可以通过Cypher调用,例如call apoc.lock.nodes([nodes])
在neo4j-contrib.github.io/neo4j-apoc-procedures/#_locking
了解详情注意:据我所知,Cypher本身并不存在此功能,因此APOC可能是您最好的选择。