Neo4j中的多线程Upsert

时间:2016-05-05 18:49:51

标签: multithreading neo4j

我正在流监控应用程序中使用Neo4j。我的流非常简单,类似于每秒8到10个事务。

当我在Neo4j中保存我的交易时,一旦它们到达,有多个线程我就会出现死锁错误,并且某些节点和关系不会被保存。

在配置或代码中是否有任何解决方案,我可以用来解决这类问题?

提前致谢

1 个答案:

答案 0 :(得分:1)

以下是有关如何避免和处理死锁的一般信息。

  1. 您必须以避免死锁的方式编写代码或Cypher查询。
  2. 完全防止死锁可能是不可能的,但你肯定不太可能使它们崩溃。
  3. 当您获得死锁状态代码"Neo.TransientError.Transaction.DeadlockDetected"(或者事实上,任何以"Neo.TransientError"开头的status code)时,您应该稍后重试(理想情况是在随机间隔后)。