Popularity
2.8
Stable
Activity
0.0
Stable
6
4
0
Programming language: Crystal
License: MIT License
Tags:
Misc
Latest version: v1.1.0
simple_retry alternatives and similar shards
Based on the "Misc" category.
Alternatively, view simple_retry alternatives based on common mentions on social networks and blogs.
-
sentry
Build/Runs your crystal application, watches files, and rebuilds/restarts app on file changes -
wikicr
Wiki in crystal, using Markdown and Git, inspired by dokuwiki. Last features to build are pretty hard, if you have some time to help... :) -
burocracia.cr
๐ Zero-dependency Crystal shard to validate, generate and format Brazilian burocracias (CPF, CNPJ, CEP) -
defined
This shard provides facilities for checking whether a constant exists at compile time, and for a variety of different conditional compilation options. Code can be conditionally compiled based on the existence of a constant, version number constraints, or whether an environment variable is set truthy or not.
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
Promo
coderabbit.ai
Do you think we are missing an alternative of simple_retry or a related project?
README
Simple Retry
A library for managing blocks of code that you might want to retry when an error occurs.
Installation
- Add the dependency to your
shard.yml
:
dependencies:
simple_retry:
github: spider-gazelle/simple_retry
- Run
shards install
Usage
require "simple_retry"
SimpleRetry.try_to do
# Something that should succeed eventually
num = rand(10)
raise "bad number #{num}" if num < 5
# Return the number
num
end
There are a number of options you can use to customise
require "simple_retry"
SimpleRetry.try_to(
# Runs the block at most 5 times
max_attempts: 5,
# Will always stop retrying on these errors
raise_on: DivisionByZeroError | ArgumentError,
# Will only retry on these errors
retry_on: Exception,
# Initial delay time after first retry
base_interval: 10.milliseconds,
# Exponentially increase delay up to this period
max_interval: 10.seconds,
# Adjust the exponential growth by a random amount
randomise: 10.milliseconds
) do |run_count : UInt64, last_error : Exception?, next_delay_time : Time::Span|
# Something that should succeed
end