0

我从 JS neo4j-driver 4.4.1 同时触发了数百个下面提到的查询(也同步尝试)。很少有查询,有时会在 nodejs 中引发以下错误。但是,当我的重试逻辑在某个时间后重试时,它会起作用。

询问

MERGE (n0:Movie {movie_id: $movie_id})
        WITH n0
        CALL apoc.lock.nodes([n0])
        CALL {
            WITH n0
            WITH n0 WHERE n0.updated_at IS NULL OR n0.updated_at < datetime($updated_at)
            MERGE (n:Movie {movie_id: $movie_id})
            ON CREATE SET n.movie_id = $movie_id
            SET n.name = $name
            SET n.downloads = $downloads
            SET n.updated_at = datetime($updated_at)
            RETURN count(*) AS cnt
        }
        RETURN n0, cnt

我在单独的事务中运行此查询,如下所示。

const session = driver.session();
await session.writeTransaction(async tx => {
                   return await tx.run(QUERY, {args}); 
                });

记录 Neo4jError: Cannot run query in this transaction,因为它已因错误或显式终止而回滚。

我在 neo4j 日志中找不到与该查询相关的任何跟踪。

有什么帮助吗?

4

0 回答 0