大家好我有这个问题,我需要锁定一个特定的节点,而我对它做了一些操作,完成后我必须释放锁。 。 我已经读过关于neo4j的悲观锁定,但我如何实现它,就像我使用jadell neo4jphp库一样。
在这方面的任何帮助都会非常感激我们被困住,不知道如何继续。
答案 0 :(得分:1)
最多Neo4j 1.9每个REST请求都是一个事务。交易的生效时间长于请求。
在Neo4j 2.0.0-M04(里程碑版本)中添加了事务性REST端点,请参阅http://docs.neo4j.org/chunked/preview/rest-api-transactional.html。要强制执行锁定,可以删除不存在的属性。
答案 1 :(得分:0)
所以今天Neo4j会自动为经历任何写操作的节点添加写锁,这些操作一直持续到事务结束。据我所知,通过Cypher,您无法手动明确地获得节点上的写锁定(至少本机地),但您可以通过Java执行此操作。
我已经阅读了一些hacks,你在这些hacks中为节点写了一个假属性,然后在事务结束之前删除了假属性,但更好的方法是使用流行的APOC plugin,它有一系列显式锁定节点的程序,可以通过Cypher调用。
了解详情