{"repo":"rye/eb","free":true,"listed":false,"github":"https://github.com/rye/eb","clone":"git clone https://github.com/rye/eb.git","description":"♻️ Run commands with exponential backoff 📈","language":"Rust","stars":94,"topics":["cli","rust","exponential-backoff","clap-rs","hacktoberfest"],"license":"GPL-3.0","category":"cli-tools","readme_excerpt":"eb eb is a small utility that runs a command with exponential backoff. eb only exits once a status code of 0 has been returned by the command it is calling, or once killed by a Ctrl+C or other signal. You can use eb much like watch : Installing it You can install eb via and you can update it via the same command. Features We currently support these (cargo) features: - simple logger enables the simple logger logger. There are no features enabled by default. The algorithm In the above console input, eb will watch the command and keep track of how long it takes to fail. Upon the first failure, a \"slot time\" is set to the time it took for the command to fail. In each instance, after n failures, a random number of slot times between 0 and 2^n - 1 is chosen, and these slot times are delayed through. So, after the first failure, eb will either wait 0 or 1 slot times; after the second failure this number increases to between 0 and 3 . The exponent n is clamp ed to be within the range 0 and MAX N where MAX N is some predefined number; in our case this is 10 . In practice, this means that after 10 collisions, the possible upper bound on delay does not increase. Because commands take a variable amount of time to complete, the slot time is adjusted to be the average of all execution times. The delay will start very quickly after the command fails. Because of the way the algorithm works, it is recommended to use eb in situations where the given command will fail quickly. This will result ","default_branch":null,"files":null,"tree":[],"storefront":"/r/rye","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/rye/eb/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}