Spaces:
Build error
Build error
| # Script for running Judge0 workers. | |
| # | |
| # Usage: ./scripts/workers | |
| # | |
| source ./scripts/load-config | |
| export | sudo tee /api/environment | |
| run_resque=1 | |
| resque_pid=0 | |
| scheduler_pid=0 | |
| date_now() { | |
| echo -n $(date +"%Y-%m-%d-%H-%M-%S") | |
| } | |
| exit_gracefully() { | |
| echo "[$(date_now)] Killing workers." | |
| run_resque=0 | |
| kill -SIGQUIT $(pgrep -P $resque_pid) | |
| kill -SIGTERM $resque_pid | |
| } | |
| trap exit_gracefully SIGTERM SIGINT | |
| mkdir -p tmp/pids &> /dev/null | |
| while [[ $run_resque -eq 1 ]]; do | |
| echo "[$(date_now)] Starting scheduler." | |
| if ! ps -p $scheduler_pid &> /dev/null; then | |
| rake resque:scheduler & | |
| scheduler_pid=$! | |
| fi | |
| rm -rf tmp/pids/resque.pid &> /dev/null | |
| echo "[$(date_now)] Starting workers." | |
| rails resque:workers & | |
| resque_pid=$! | |
| while ps -p $resque_pid > /dev/null; do sleep 1s; done | |
| echo "[$(date_now)] Workers are stopped." | |
| done | |