newlib
Содержание

Руководство

Установка

Для newlib нужен Python 3.12+. Добавьте библиотеку в проект:

uv add newlib

Быстрый старт

Вот полная программа, которая использует newlib.

from datetime import timedelta

from newlib import Scheduler

scheduler = Scheduler(
    timezone="Europe/Moscow",
    jitter=timedelta(seconds=30),
)

ok = scheduler.add("cleanup", "0 3 * * *")
print(ok)

scheduler.start()

Описание задач

Задача — это имя, расписание и функция. Регистрируйте задачи до вызова start(); пока планировщик работает, набор задач не меняется.

Имена должны быть уникальными. Они попадают в логи и в результат next_run().

Расписания

Для календарных расписаний используйте cron-выражение вроде 0 3 * * *, для простой периодической работы — интервал, например каждые 15 минут.

Интервал отсчитывается от конца предыдущего запуска, поэтому медленная задача никогда не копится.

Несколько экземпляров

newlib не координирует процессы между собой. Если задача должна выполняться только на одном экземпляре, защитите её блокировкой в базе.