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 RAthena
has implemented a retry method with exponential backoff. This technique increases the reliability of the application with connecting to AWS Athena
.
RAthena
's retry?By default RAthena
performs a retry noisily, this means it will report the exception it has encountered and let the user know how long RAthena
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 RAthena
is doing behind the scenes.
By default RAthena
retries 5 times and does it noisily. To configure this, RAthena_options
has been give 2 extra parameters retry
and retry_quiet
. retry
is the number of retries RAthena
will perform. retry_quiet
tells RAthena
to retry quietly or not.
We can change the default retry settings so that RAthena
will retry 10 times and do it quietly:
RAthena_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(RAthena) # connection to AWS Athena con = dbConnect(athena()) # Stop RAthena retrying RAthena_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 ..."))
If you wish to increase the retry functionality of RAthena
for example the use of different backoff algorithms, please raise a ticket at issues or raise a pull request.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.