Skip to main content

Wait for service(s) to be available before executing a command.

Project description

wait-for-it

PyPi release PyPi versions Downloads Documentation Status

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 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
  -t, --timeout seconds    Timeout in seconds, 0 for no timeout  [default: 15]
  -s, --service host:port  Services to test, in one of the formats:
                           'hostname:port', 'v4addr:port', '[v6addr]:port' or
                           'https://...'

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wait-for-it-2.1.1.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

wait_for_it-2.1.1-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file wait-for-it-2.1.1.tar.gz.

File metadata

  • Download URL: wait-for-it-2.1.1.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.5

File hashes

Hashes for wait-for-it-2.1.1.tar.gz
Algorithm Hash digest
SHA256 ab7c437e36ca1b341ec91576d80bd4a3805c972b2d09f811ed76dc47a1e63486
MD5 f346735becd794d7bbf1a33d08b7b3e9
BLAKE2b-256 a50d6589ca45ef512a1ddbe09ef60f6a4f7d4150551bb0f8f5db0ee0c88e6b12

See more details on using hashes here.

File details

Details for the file wait_for_it-2.1.1-py3-none-any.whl.

File metadata

  • Download URL: wait_for_it-2.1.1-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.5

File hashes

Hashes for wait_for_it-2.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2211ab116df982f2100fa9e57fe1015bfa9b9af92d565db978e1f7eb715c7bd3
MD5 a207a153b8df22a903a2c94fe90682ab
BLAKE2b-256 dc14ac6158ae130986e0edb263d5b9f25b83216e3c1569ba726e79299bde0022

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page