zoukankan      html  css  js  c++  java
  • APOC官网触发器示例执行后Web页面一直转圈

    apoc使用触发器:如apoc官网指导

    1. CREATE (d:Person {name:‘Daniel’})
    2. CREATE (l:Person {name:‘Mary’})
    3. CREATE (t:Person {name:‘Tom’})
    4. CREATE (j:Person {name:‘John’})
    5. CREATE (m:Person {name:‘Michael’})
    6. CREATE (a:Person {name:‘Anne’})
    7. CREATE (l)-[:DAUGHTER_OF]->(d)
    8. CREATE (t)-[:SON_OF]->(d)
    9. CREATE (t)-[:BROTHER]->(j)
    10. CREATE (a)-[:WIFE_OF]->(d)
    11. CREATE (d)-[:SON_OF]->(m) CREATE (j)-[:SON_OF]->(d)
    12. CALL apoc.trigger.add(‘setAllConnectedNodes’,‘UNWIND apoc.trigger.propertiesByKey({assignedNodeProperties},“surname”) as prop
    13. WITH prop.node as n MATCH(n:Person)-[]-(a) //库中不同标签的节点较多,所以较官方手册加了一个Person标签
    14. SET a.surname = n.surname’, {phase:‘after’});

    使用如下的set语句构造触发条件 MATCH (d:Person {name:‘Daniel’}) SET d.surname = ‘William’

    该语句执行完成后,触发器的功能已经实现了,但是为什么web页面显示一直转圈,虚机和物理机都是这样,超过5min。

    apoc.trigger.enabled=true已经设置过了,而且这之后继续使用MATCH (d:Person {name:‘Daniel’}) SET d.surname = ‘Xaaa’这样的语句不起作用,person的surname是之前的William没有变成Xaaa,为什么?

    按F12后发现,一直在向后台发送请求,引发数据库后台进程阻塞。个人推测为'setAllConnectedNodes'这样的触发器,在节点上添加surname属性时,它会添加到所有的连接的节点(但是添加之后又会循环触发,导致走进了一个死循环。

    解决方法:
    要注意的是,这样的情况会引发数据库后台进程阻塞,需要后台重启neo4j实例,来阻止对应的阻塞进程。前端刷新并不生效。仅仅在前端刷新,会阻塞对Person标签类对象的一切操作,包括delete与set。

    //修改相应的触发器语句,此时成功执行,不再阻塞,但是在前端显示不会说Set 6 //properties。仅仅显示Set 1 property,因为其他5个节点的属性是后台触发完成的。

    1. CALL apoc.trigger.add('setAllConnectedNodes','UNWIND apoc.trigger.propertiesByKey({assignedNodeProperties},"surname") as prop
    2. WITH prop.node as n
    3. MATCH(n:Person)-[]-(a:Person)
    4. where not exists(a.surname) or n.surname<>a.surname
    5. SET a.surname = n.surname', {phase:'after'});

    原文地址:https://blog.csdn.net/weixin_42348333/article/details/89855189

  • 相关阅读:
    WinForm控件之【DateTimePicker】
    WinForm控件之【ComboBox】
    WinForm控件之【CheckedListBox】
    第五章学习小结
    第四章学习小结
    第三章学习小结
    第二章学习小结
    iOS
    iOS
    iOS
  • 原文地址:https://www.cnblogs.com/jpfss/p/11738769.html
Copyright © 2011-2022 走看看