diff --git a/Dockerfile b/Dockerfile index 3f4b7b5..d6e6d7b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -52,7 +52,8 @@ RUN apk update && apk add --no-cache \ supervisor \ nginx \ openssl \ - linux-headers + linux-headers \ + supervisor RUN docker-php-ext-configure zip && docker-php-ext-install zip RUN docker-php-ext-install gd pdo pdo_mysql zip @@ -75,6 +76,10 @@ RUN mv ${APP_ENV_FILE} .env RUN composer install --no-interaction --prefer-dist +# Supervisor +COPY ./docker/datbrowserQueueWorker.conf /etc/supervisor/conf.d/datbrowserQueueWorker.conf +RUN sudo supervisorctl reread && sudo supervisorctl reread && sudo supervisorctl update + # CRON RUN echo "* * * * * cd ${wd} && php artisan schedule:run >> /dev/null 2>&1" > /etc/crontabs/root diff --git a/app/Browser/BrowserJob.php b/app/Browser/BrowserJob.php index 027c27d..f0797ab 100644 --- a/app/Browser/BrowserJob.php +++ b/app/Browser/BrowserJob.php @@ -28,7 +28,7 @@ abstract class BrowserJob implements ShouldQueue public int $jobId; - public $timeout = 300; + public $timeout = 500; public function __construct(int $jobId) { diff --git a/docker/datbrowserQueueWorker.conf b/docker/datbrowserQueueWorker.conf new file mode 100644 index 0000000..4372d3c --- /dev/null +++ b/docker/datbrowserQueueWorker.conf @@ -0,0 +1,12 @@ +[program:laravel-worker] +process_name=%(program_name)s_%(process_num)02d +command=php %(wd)/artisan queue:work --queue=high,default --tries=3 --timeout=300 --sleep=3 --no-interaction +autostart=true +autorestart=true +stopasgroup=true +killasgroup=true +user=forge +numprocs=8 +redirect_stderr=true +stdout_logfile=%(wd)/worker.log +stopwaitsecs=3600 diff --git a/dockerEntryPoint.sh b/dockerEntryPoint.sh index 00a81ec..2e65bbd 100644 --- a/dockerEntryPoint.sh +++ b/dockerEntryPoint.sh @@ -7,7 +7,7 @@ php ./artisan migrate --force php ./artisan optimize:clear && php ./artisan optimize # Queue worker -php ./artisan queue:work --queue=high,default --tries=3 --timeout=300 --sleep=3 --daemon --no-interaction & +supervisorctl start "laravel-worker:*" # Start all of the server sumulataneously php ./artisan serve --no-interaction -vvv --port=80 --host=0.0.0.0