fix: switch to prefork pool to avoid worker disconnects

closes #75
This commit is contained in:
Felix Spöttel
2024-04-16 17:59:08 +02:00
parent a40dbfb9a0
commit 7487914335
5 changed files with 5 additions and 8 deletions

View File

@@ -2,9 +2,6 @@
> HTTP wrapper around [openai/whisper](https://github.com/openai/whisper).
> ⚠️ WARNING: The latest version has an unsolved bug and will not work until [issue #75](https://github.com/bellingcat/whisperbox-transcribe/issues/75) can be solved, help is welcome!
## Overview
This project wraps OpenAI's `whisper` speech-to-text models with a HTTP API.

View File

@@ -67,11 +67,11 @@ def transcribe(self: TranscribeTask, job_id: UUID) -> None:
job = session.query(models.Job).filter(models.Job.id == job_id).one_or_none()
if job is None:
logger.warn("[{job.id}]: Received unknown job, abort.")
logger.warn("[unknown]: Received unknown job, abort.")
return
if job.status in [models.JobStatus.error, models.JobStatus.success]:
logger.warn("[{job.id}]: job has already been processed, abort.")
logger.warn(f"[{job.id}]: job has already been processed, abort.")
return
logger.debug(f"[{job.id}]: start processing {job.type} job.")

View File

@@ -24,7 +24,7 @@ services:
- "traefik.http.routers.web.rule=(Host(`${TRAEFIK_DOMAIN}`))"
worker:
command: watchmedo auto-restart -d app/worker -p *.py --recursive celery -- --app=app.worker.main.celery worker --loglevel=info --concurrency=1 --pool solo
command: watchmedo auto-restart -d app/worker -p *.py --recursive celery -- --app=app.worker.main.celery worker --loglevel=info --concurrency=1 --pool prefork
volumes:
- ./:/etc/whisperbox-transcribe/

View File

@@ -28,4 +28,4 @@ RUN python download_models.py ${WHISPER_MODEL}
COPY app ./app
CMD celery --app=app.worker.main.celery worker --loglevel=info --concurrency=1 --pool=solo
CMD celery --app=app.worker.main.celery worker --loglevel=info --pool=prefork --concurrency=1

View File

@@ -36,4 +36,4 @@ ENV PATH /opt/venv/bin:$PATH
COPY scripts/download_models.py .
RUN python download_models.py ${WHISPER_MODEL}
CMD celery --app=app.worker.main.celery worker --loglevel=info --concurrency=1 --pool=solo
CMD celery --app=app.worker.main.celery worker --loglevel=info --concurrency=1 --pool=prefork