#!/usr/bin/bash

LOG=/var/log/email_queue.log
PHP=/var/www/html/thewarren.co.za/services/process_email_queue.service.php

log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG"; }

trap 'log "Received signal, exiting."; exit 0' SIGTERM SIGINT

log "Started (PID $$)"

FAILURES=0
while true; do
    /usr/bin/php "$PHP" >> "$LOG" 2>&1
    CODE=$?
    if [ $CODE -ne 0 ]; then
        FAILURES=$((FAILURES + 1))
        log "PHP exited $CODE (failure $FAILURES)"
        [ $FAILURES -ge 5 ] && { log "5 consecutive failures, sleeping 60s"; sleep 60; FAILURES=0; } || sleep 5
    else
        FAILURES=0
        sleep 1
    fi
done