Skip to content

Retry queries run against the neo4j driver. Great for handling deadlock exceptions.

Notifications You must be signed in to change notification settings

ambassify/neo4j-retried

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

neo4j-retried

CircleCI npm version npm downloads maintainer

Retry queries run against the neo4j driver. Great for handling deadlock exceptions.

Important caveat

The retried wrapper only works if you use neo4j-driver with promises, it does not handle the .subscribe() way.

Installation

npm install --save @ambassify/neo4j-retried

Example

Automatically retry DeadlockDetected exceptions.

const neo4j = require('neo4j-driver').v1;
const neo4jRetried = require('@ambassify/neo4j-retried');

const driver = neo4jRetried(neo4j.driver(/* your driver config */), {
    shouldRetry: [ neo4jRetried.errors.Transaction.DeadlockDetected ]
});
const session = driver.session();

session.run('CREATE CONSTRAINT ON (p:Person) ASSERT p.name IS UNIQUE')
.catch(e => {
    console.log(e);
    session.close();
    driver.close();
});

Options

retries

The amount of times a query should be retried.

delay

The delay between retries, can be an integer or a function.

In case of integer, the value is used as slot time in a binary exponential backoff algorithm (https://en.wikipedia.org/wiki/Exponential_backoff)

In case of a function, the function is called with the total amount of previous calls as first parameter and should return the delay in ms.

shouldRetry

Decides whether or not a failure should be retried. Can be an array of Neo4j error codes that should be retried or a function that accepts the error that occurred and returns a boolean.

Contribute

We really appreciate any contribution you would like to make, so don't hesitate to report issues or submit pull requests.

License

This project is released under a MIT license.

About us

If you would like to know more about us, be sure to have a look at our website, or our Twitter accounts Ambassify, Sitebase, JorgenEvens

About

Retry queries run against the neo4j driver. Great for handling deadlock exceptions.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published