Wait for service(s) to be available before executing a command.
Project description
wait-for-it
Wait for service(s) to be available before executing a command.
wait-for-it
is a script that will wait on the availability of one or more TCP services (i.e. host:port
) before executing a user-defined command.
It is useful for synchronizing the spin-up of interdependent services, such as linked docker containers.
Since v2.0.0,
wait-for-it
will return the exit code of the executed command(s).
Check out the wait-for-it docs
Installation
$ pip install wait-for-it
Demo
Usage
Usage: wait-for-it [OPTIONS] [COMMANDS]...
Wait for service(s) to be available before executing a command.
Options:
-h, --help Show this message and exit.
-v, --version Show the version and exit.
-q, --quiet Do not output any status messages
-p, --parallel Test services in parallel rather than in serial
-s, --service host:port Services to test, in the format host:port
-t, --timeout seconds Timeout in seconds, 0 for no timeout [default: 15]
Examples
Test to see if we can access port 80 on www.google.com, and if it is available, echo the message google is up:
$ wait-for-it \
--service www.google.com:80 \
-- echo "google is up"
[*] Waiting 15 seconds for www.google.com:80
[+] www.google.com:80 is available after 0 seconds
google is up
You can set your own timeout with the -t
or --timeout
option. Setting the timeout value to 0 will disable the timeout:
$ wait-for-it \
--service www.google.com:80 \
--timeout 0 \
-- echo "google is up"
[*] Waiting for www.google.com:80 without a timeout
[+] www.google.com:80 is available after 0 seconds
google is up
Multiple services can be tested by adding additional -s
or --service
options:
$ wait-for-it \
--service www.google.com:80 \
--service www.bing.com:80 \
--service www.duckduckgo.com:80 \
-- echo "google, bing, and duckduckgo are up"
[*] Waiting 15 seconds for www.google.com:80
[+] www.google.com:80 is available after 0 seconds
[*] Waiting 15 seconds for www.bing.com:80
[+] www.bing.com:80 is available after 0 seconds
[*] Waiting 15 seconds for www.duckduckgo.com:80
[+] www.duckduckgo.com:80 is available after 0 seconds
google, bing, and duckduckgo are up
By adding the -p
or --parallel
option, wait-for-it
can do the same in parallel rather than serial:
$ wait-for-it \
--parallel \
--service www.google.com:80 \
--service www.bing.com:80 \
--service www.duckduckgo.com:80 \
-- echo "google, bing, and duckduckgo are up"
[*] Waiting 15 seconds for www.bing.com:80
[*] Waiting 15 seconds for www.duckduckgo.com:80
[*] Waiting 15 seconds for www.google.com:80
[+] www.bing.com:80 is available after 0 seconds
[+] www.duckduckgo.com:80 is available after 0 seconds
[+] www.google.com:80 is available after 0 seconds
google, bing, and duckduckgo are up
Status message output can be suppressed with the -q
or --quiet
option:
$ wait-for-it \
--quiet \
--service www.google.com:80 \
-- echo "google is up"
google is up
Related
License
MIT © Travis Clarke, Sebastian Pipping
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for wait_for_it-2.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a24134d4b93e42436abdd32328ab6fd360cc45e765d1988216f8299ec6e78ea2 |
|
MD5 | d8baa3ffff34fe60f6ca83cc5dc73d74 |
|
BLAKE2b-256 | a7273038f2ebf4443ae9436c698fe59b19cda23cb11ac46de5085c5218f14ccd |