Keep workers online during long-running downloads

This commit is contained in:
erik
2026-09-04 14:53:37 -05:00
parent d9e2012e22
commit 632599b201
57 changed files with 8847 additions and 21 deletions
+3 -2
View File
@@ -1,4 +1,4 @@
FROM python:3.11-slim
FROM python:3.11-slim-bookworm
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
@@ -6,7 +6,8 @@ ENV PYTHONDONTWRITEBYTECODE=1 \
WORKDIR /app
RUN apt-get update \
RUN sed -i 's|http://deb.debian.org|https://deb.debian.org|g' /etc/apt/sources.list.d/debian.sources \
&& apt-get update \
&& apt-get install -y --no-install-recommends curl \
&& rm -rf /var/lib/apt/lists/*
+3 -2
View File
@@ -1,4 +1,4 @@
FROM python:3.12-slim
FROM python:3.12-slim-bookworm
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
@@ -6,7 +6,8 @@ ENV PYTHONDONTWRITEBYTECODE=1 \
WORKDIR /app
RUN apt-get update \
RUN sed -i 's|http://deb.debian.org|https://deb.debian.org|g' /etc/apt/sources.list.d/debian.sources \
&& apt-get update \
&& apt-get install -y --no-install-recommends curl \
&& rm -rf /var/lib/apt/lists/*
@@ -26,7 +26,9 @@ from infrastructure.database import (
)
from infrastructure.storage_minio import downloads_prefix
HEARTBEAT_OFFLINE_SECONDS = 45
# El worker procesa el navegador de forma bloqueante. Tres minutos toleran una
# caída breve del gateway sin reclamar el mismo job mientras sigue descargando.
HEARTBEAT_OFFLINE_SECONDS = 180
# Un agent recién conectado no recibe jobs reclamados de otros workers.
_FRESH_WORKER_GRACE_SECONDS = 45
+3 -2
View File
@@ -1,4 +1,4 @@
FROM python:3.12-slim
FROM python:3.12-slim-bookworm
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
@@ -6,7 +6,8 @@ ENV PYTHONDONTWRITEBYTECODE=1 \
WORKDIR /app
RUN apt-get update \
RUN sed -i 's|http://deb.debian.org|https://deb.debian.org|g' /etc/apt/sources.list.d/debian.sources \
&& apt-get update \
&& apt-get install -y --no-install-recommends curl \
&& rm -rf /var/lib/apt/lists/*
+3 -2
View File
@@ -1,4 +1,4 @@
FROM python:3.11-slim
FROM python:3.11-slim-bookworm
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
@@ -6,7 +6,8 @@ ENV PYTHONDONTWRITEBYTECODE=1 \
WORKDIR /app
RUN apt-get update \
RUN sed -i 's|http://deb.debian.org|https://deb.debian.org|g' /etc/apt/sources.list.d/debian.sources \
&& apt-get update \
&& apt-get install -y --no-install-recommends libgl1 libglib2.0-0 \
&& rm -rf /var/lib/apt/lists/*
+1 -1
View File
@@ -1,4 +1,4 @@
FROM python:3.12-slim
FROM python:3.12-slim-bookworm
WORKDIR /app
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "ipsextractor-desktop",
"version": "1.3.1",
"version": "1.3.2",
"private": true,
"description": "Aplicación de escritorio Flujo IPS para automatizar procesos de cuentas médicas.",
"main": "electron/main.cjs",
+3 -2
View File
@@ -1,4 +1,4 @@
FROM python:3.11-slim
FROM python:3.11-slim-bookworm
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
@@ -6,7 +6,8 @@ ENV PYTHONDONTWRITEBYTECODE=1 \
WORKDIR /app
RUN apt-get update \
RUN sed -i 's|http://deb.debian.org|https://deb.debian.org|g' /etc/apt/sources.list.d/debian.sources \
&& apt-get update \
&& apt-get install -y --no-install-recommends poppler-utils libgl1 libglib2.0-0 \
&& rm -rf /var/lib/apt/lists/*
+1 -1
View File
@@ -1,4 +1,4 @@
FROM python:3.11-slim
FROM python:3.11-slim-bookworm
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
@@ -29,7 +29,22 @@ ENV GOMAXPROCS=2
WORKDIR /src
COPY go.mod go.sum ./
RUN go mod download
# La red hacia proxy.golang.org puede ser intermitente en Docker Desktop.
# Reintentar conserva la verificación de go.sum; si el proxy oficial sigue
# caído, la última tentativa descarga directamente desde el repositorio origen.
RUN --mount=type=cache,target=/go/pkg/mod \
set -eu; \
attempt=1; \
while [ "$attempt" -le 3 ]; do \
if GOPROXY=https://proxy.golang.org go mod download; then \
exit 0; \
fi; \
echo "go mod download falló (intento ${attempt}/3); reintentando..."; \
sleep $((attempt * 5)); \
attempt=$((attempt + 1)); \
done; \
echo "proxy.golang.org no respondió; intentando descarga directa..."; \
GOPROXY=direct go mod download
COPY . .