Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Weekly job fails with interval > 1

Abierto
#613 0 comentarios 1 reacción 0 asignados Ver en GitHub

@Hugohong258 ya está trabajando en esto.

Desde el 13/10/2026.

  • #668 de @Hugohong258 — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Estancado
Stack tecnológico
python
Área
tooling

Línea de trabajo

El punto de entrada afectado es _schedule_next_run; empieza ahí y revisa la prueba unitaria adjunta scheduler_weeks_test.txt para reproducir el fallo. Verifica que los trabajos semanales con intervalos mayores que uno programen la siguiente ejecución esperada y confirma que el ajuste obsoleto al final de la función ya no es necesario.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Some assumptions are made in the code, which breaks if the interval is > 1.

Attached some unit test to expose the error:
scheduler_weeks_test.txt

To fix:

In _schedule_next_run replace the lines from starting with if days_ahead <= 0: with the following

            if days_ahead < 0:  # Target day already happened this week
                days_ahead += 7
            if self.last_run is None:
                self.next_run += datetime.timedelta(days_ahead) - self.period
            elif self.last_run + self.period < datetime.datetime.now():
                self.next_run += datetime.timedelta(days_ahead) - datetime.timedelta(days=7)

And a bit further down, at the end of the function, remove the following completely

        if self.start_day is not None and self.at_time is not None:
            # Let's see if we will still make that time we specified today
            if (self.next_run - datetime.datetime.now()).days >= 7:
                self.next_run -= self.period
Lenguaje dominante
Python
Estrellas
12.3k
Forks
1k
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de dbader/schedule

Todos los issues de dbader/schedule

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.