Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
This repository was archived by the owner on May 11, 2022. It is now read-only.
/tryPublic archive

♻️ CLI tool based on github.com/kamilsk/retry package to execute commands with retries.

License

NotificationsYou must be signed in to change notification settings

octolab/try

Repository files navigation

Tool to execute terminal commands with retries.

BuildTemplate

💡 Idea

$ retry -limit=3 -backoff=lin:500ms -- curl example.com

Full description of the idea is availablehere.

🏆 Motivation

...

🤼‍♂️ How to

asciicast

Usage: retry [-timeout Timeout] [--debug] [--notify] [strategy flags] -- commandThe strategy flags    --infinite        Infinite creates a Strategy that will never stop repeating.    -limit=X        Limit creates a Strategy that limits the number of attempts that Retry will        make.    -delay=Xs        Delay creates a Strategy that waits the given duration before the first        attempt is made.    -wait=Xs,...        Wait creates a Strategy that waits the given durations for each attempt after        the first. If the number of attempts is greater than the number of durations        provided, then the strategy uses the last duration provided.    -backoff=:algorithm        Backoff creates a Strategy that waits before each attempt, with a duration as        defined by the given backoff.Algorithm.    -tbackoff=":algorithm :transformation"        BackoffWithJitter creates a Strategy that waits before each attempt, with a        duration as defined by the given backoff.Algorithm and jitter.Transformation.:algorithm    inc:Xs,Ys        Incremental creates a Algorithm that increments the initial duration        by the given increment for each attempt.    lin:Xs        Linear creates a Algorithm that linearly multiplies the factor        duration by the attempt number for each attempt.    exp:Xs,Y        Exponential creates a Algorithm that multiplies the factor duration by        an exponentially increasing factor for each attempt, where the factor is        calculated as the given base raised to the attempt number.    binexp:Xs        BinaryExponential creates a Algorithm that multiplies the factor        duration by an exponentially increasing factor for each attempt, where the        factor is calculated as "2" raised to the attempt number (2^attempt).    fib:Xs        Fibonacci creates a Algorithm that multiplies the factor duration by        an increasing factor for each attempt, where the factor is the Nth number in        the Fibonacci sequence.:transformation    full        Full creates a Transformation that transforms a duration into a result        duration in [0, n) randomly, where n is the given duration.        The given generator is what is used to determine the random transformation.        If a nil generator is passed, a default one will be provided.        Inspired by https://www.awsarchitectureblog.com/2015/03/backoff.html    equal        Equal creates a Transformation that transforms a duration into a result        duration in [n/2, n) randomly, where n is the given duration.        The given generator is what is used to determine the random transformation.        If a nil generator is passed, a default one will be provided.        Inspired by https://www.awsarchitectureblog.com/2015/03/backoff.html    dev:X        Deviation creates a Transformation that transforms a duration into a result        duration that deviates from the input randomly by a given factor.        The given generator is what is used to determine the random transformation.        If a nil generator is passed, a default one will be provided.        Inspired by https://developers.google.com/api-client-library/java/google-http-java-client/backoff    ndist:X        NormalDistribution creates a Transformation that transforms a duration into a        result duration based on a normal distribution of the input and the given        standard deviation.        The given generator is what is used to determine the random transformation.        If a nil generator is passed, a default one will be provided.Examples:    retry -limit=3 -backoff=lin:10ms -- curl http://example.com    retry -tbackoff="lin:10s full" --debug -- curl https://example.com    retry -timeout=500ms --notify --infinite -- git pullVersion 3.0.0 (commit: ..., build date: ..., go version: go1.9, compiler: gc, platform: darwin/amd64)

Complex example

$ retry -limit=3 -backoff=lin:10ms -- /bin/sh -c'echo "trying..."; exit 1'trying...#2 attempt at 17.636458ms...trying...#3 attempt at 48.287964ms...trying...error occurred:"exit status 1"$ retry -timeout=500ms --infinite -- /bin/sh -c'echo "trying..."; exit 1'trying......trying...#N attempt at 499.691521ms...error occurred:"context deadline exceeded"

🧩 Installation

Homebrew

$ brew install kamilsk/tap/retry

Binary

$ curl -sSL https://bit.ly/install-retry| sh# or$ wget -qO- https://bit.ly/install-retry| sh

Source

# use standard go tools$ go get -u github.com/kamilsk/retry.cli# or use egg tool$ egg tools add github.com/kamilsk/retry.cli

egg1 is anextended go get.

Bash and Zsh completions

$ retry completion bash> /path/to/bash_completion.d/retry.sh$ retry completion zsh> /path/to/zsh-completions/_retry.zsh

1 The project is still in prototyping.


made with ❤️ for everyone


[8]ページ先頭

©2009-2025 Movatter.jp