Created
July 17, 2020 13:12
-
-
Save jklimke/3fea1e5e7dd7cd8003de7500508364df to your computer and use it in GitHub Desktop.
script for executing rails delayed jobs in a blocking manner, e.g., for running in an docker container
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Variable DELAYED_JOB_ARGS contains the arguments for delayed jobs for, e.g. defining queues and worker pools. | |
# function that is called when the docker container should stop. It stops the delayed job processes | |
_term() { | |
echo "Caught SIGTERM signal! Stopping delayed jobs !" | |
# unbind traps | |
trap - SIGTERM | |
trap - TERM | |
trap - SIGINT | |
trap - INT | |
# end delayed jobs | |
bundle exec "./bin/delayed_job ${DELAYED_JOB_ARGS} stop" | |
exit | |
} | |
# register handler for selected signals | |
trap _term SIGTERM | |
trap _term TERM | |
trap _term INT | |
trap _term SIGINT | |
echo "Starting delayed jobs ... with ARGs \"${DELAYED_JOB_ARGS}\"" | |
# restart delayed jobs on script execution | |
bundle exec "./bin/delayed_job ${DELAYED_JOB_ARGS} restart" | |
echo "Finished starting delayed jobs... Waiting for SIGTERM / CTRL C" | |
# sleep forever until exit | |
while true; do sleep 86400; done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment