From d45511d347c7d16438995c60f15ede251a17e9fa Mon Sep 17 00:00:00 2001 From: Ben Larabie Date: Wed, 11 Oct 2023 10:26:33 -0400 Subject: [PATCH] Adding a check to wait for cwagent before starting (#1996) * Adding a check to wait for cwagent before starting * Adding cwagent check to nosms script --- scripts/run_celery.sh | 21 +++++++++++++++++++++ scripts/run_celery_no_sms_sending.sh | 22 ++++++++++++++++++++++ scripts/run_celery_send_sms.sh | 19 +++++++++++++++++++ scripts/run_celery_sms.sh | 20 ++++++++++++++++++++ 4 files changed, 82 insertions(+) diff --git a/scripts/run_celery.sh b/scripts/run_celery.sh index 5bc21274c0..ad8635791b 100755 --- a/scripts/run_celery.sh +++ b/scripts/run_celery.sh @@ -2,8 +2,29 @@ # runs celery with all celery queues except the throtted sms queue +init() +{ + # Wait for cwagent to become available. + + while : + do + if nc -vz $STATSD_HOST 25888; then + echo "CWAgent is Ready." + break; + else + echo "Waiting for CWAgent to become ready." + sleep 1 + fi + done +} + set -e +# Check and see if this is running in K8s and if so, wait for cloudwatch agent +if [[ -z "${STATSD_HOST}" ]]; then + init +fi + echo "Start celery, concurrency: ${CELERY_CONCURRENCY-4}" celery -A run_celery.notify_celery worker --pidfile="/tmp/celery.pid" --loglevel=INFO --concurrency=${CELERY_CONCURRENCY-4} -Q database-tasks,-priority-database-tasks.fifo,-normal-database-tasks,-bulk-database-tasks,job-tasks,notify-internal-tasks,periodic-tasks,priority-tasks,normal-tasks,bulk-tasks,reporting-tasks,research-mode-tasks,retry-tasks,send-sms-tasks,send-sms-high,send-sms-medium,send-sms-low,send-email-tasks,service-callbacks,delivery-receipts diff --git a/scripts/run_celery_no_sms_sending.sh b/scripts/run_celery_no_sms_sending.sh index 7a16de2111..f0669c7d39 100755 --- a/scripts/run_celery_no_sms_sending.sh +++ b/scripts/run_celery_no_sms_sending.sh @@ -1,9 +1,31 @@ #!/bin/sh +# runs celery with only the throttled sms sending queue + +init() +{ + # Wait for cwagent to become available. + while : + do + if nc -vz $STATSD_HOST 25888; then + echo "CWAgent is Ready." + break; + else + echo "Waiting for CWAgent to become ready." + sleep 1 + fi + done +} + # runs celery with all celery queues except send-throttled-sms-tasks, send-sms-tasks, send-sms-high, send-sms-medium, or send-sms-low set -e +# Check and see if this is running in K8s and if so, wait for cloudwatch agent +if [[ -z "${STATSD_HOST}" ]]; then + init +fi + echo "Start celery, concurrency: ${CELERY_CONCURRENCY-4}" celery -A run_celery.notify_celery worker --pidfile="/tmp/celery.pid" --loglevel=INFO --concurrency=${CELERY_CONCURRENCY-4} -Q database-tasks,-priority-database-tasks.fifo,-normal-database-tasks,-bulk-database-tasks,job-tasks,notify-internal-tasks,periodic-tasks,priority-tasks,normal-tasks,bulk-tasks,reporting-tasks,research-mode-tasks,retry-tasks,send-email-tasks,service-callbacks,delivery-receipts diff --git a/scripts/run_celery_send_sms.sh b/scripts/run_celery_send_sms.sh index 1b8ea7de50..e6c32a5d75 100755 --- a/scripts/run_celery_send_sms.sh +++ b/scripts/run_celery_send_sms.sh @@ -2,8 +2,27 @@ # runs celery with only the send-sms-* queues +init() +{ + # Wait for cwagent to become available. + while : + do + if nc -vz $STATSD_HOST 25888; then + echo "CWAgent is Ready." + break; + else + echo "Waiting for CWAgent to become ready." + sleep 1 + fi + done +} + set -e +if [[ -z "${STATSD_HOST}" ]]; then + init +fi + echo "Start celery, concurrency: ${CELERY_CONCURRENCY-4}" # TODO: we shouldn't be using the send-sms-tasks queue anymore - once we verify this we can remove it diff --git a/scripts/run_celery_sms.sh b/scripts/run_celery_sms.sh index 52f727123a..583fab7127 100755 --- a/scripts/run_celery_sms.sh +++ b/scripts/run_celery_sms.sh @@ -2,6 +2,26 @@ # runs celery with only the throttled sms sending queue +init() +{ + # Wait for cwagent to become available. + while : + do + if nc -vz $STATSD_HOST 25888; then + echo "CWAgent is Ready." + break; + else + echo "Waiting for CWAgent to become ready." + sleep 1 + fi + done +} + set -e +# Check and see if this is running in K8s and if so, wait for cloudwatch agent +if [[ -z "${STATSD_HOST}" ]]; then + init +fi + celery -A run_celery.notify_celery worker --loglevel=INFO --concurrency=1 -Q send-throttled-sms-tasks