如何使用php端脚本在NeO4j中实现锁

时间:2013-08-28 03:05:01

标签: php neo4j

大家好我有这个问题,我需要锁定一个特定的节点,而我对它做了一些操作,完成后我必须释放锁。 。 我已经读过关于neo4j的悲观锁定,但我如何实现它,就像我使用jadell neo4jphp库一样。

在这方面的任何帮助都会非常感激我们被困住,不知道如何继续。

2 个答案:

答案 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调用。

neo4j-contrib.github.io/neo4j-apoc-procedures/#_locking

了解详情