The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

How to Retry?

Dyfan Jones

With most applications that connect to an API, unnecessary exceptions can be returned back to the caller in the case of transient network or service issues. To avoid this noctua has implemented a retry method with exponential backoff. This technique increases the reliability of the application with connecting to AWS Athena.

How to handle noctua’s retry?

By default noctua performs a retry noisily, this means it will report the exception it has encountered and let the user know how long noctua will wait until it retries again. This is reported in the following format:

{expection message} + "Request failed. Retrying in " + {wait time}  + " seconds..."

This is to keep the user informed in what noctua is doing behind the scenes.

Configure

By default noctua retries 5 times and does it noisily. To configure this, noctua_options has been give 2 extra parameters retry and retry_quiet. retry is the number of retries noctua will perform. retry_quiet tells noctua to retry quietly or not.

We can change the default retry settings so that noctua will retry 10 times and do it quietly:

noctua_options(retry = 10, retry_quiet = TRUE)

If you wish to create your own custom retry function just set the retry to 0:

library(DBI)
library(noctua)

# connection to AWS Athena
con = dbConnect(athena())

# Stop noctua retrying
noctua_options(retry = 0)

# build your own custom retry function
custom_retry = function(x){
  # your custom retry method
}

# apply your own retry function
custom_retry(dbGetQuery(con, "select ..."))

Requests

If you wish to increase the retry functionality of noctua for example the use of different backoff algorithms, please raise a ticket at issues or raise a pull request.

Reading material

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.