PYTHONOMANIA
273 subscribers
195 photos
3 videos
1 file
616 links
Откройте для себя мир Python в PYTHONOMANIA!

Идеально подходит как для начинающих, так и для опытных разработчиков. Присоединяйтесь к нам, чтобы достичь совершенства в Python!

Сайт: https://pythonomania.github.io/
Download Telegram
📱FastScheduler.

FastScheduler — это простой, лёгкий планировщик задач для Python с поддержкой async, учётом часовых поясов, cron‑выражениями и удобным дашбордом.

🔹Особенности:

🔘Простое API: @scheduler.every(10).seconds, @scheduler.daily.at("09:00"), @scheduler.cron("*/15 * * * *") вешаются прямо на функции (sync или async).

🔘Богатый контроль: таймауты .timeout(30), ретраи .retries(5) с экспоненциальным backoff, отключение догоняющих запусков .no_catch_up(), pause/resume/cancel по ID или имени функции.

🔘Наблюдаемость: JSON‑персистентность (история, статистика, dead‑letter queue) и real‑time FastAPI‑дашборда с SSE, таблицей джобов, историей и вкладкой фейлов.

⚙️Как поставить и запустить:

🔘Установка:
базово: pip install fastscheduler.
с дашбордом: pip install fastscheduler[fastapi].
с cron: pip install fastscheduler[cron].
всё сразу: pip install fastscheduler[all].

🔘Минимальный пример:
  from fastscheduler import FastScheduler

scheduler = FastScheduler(quiet=True)

@scheduler.every(10).seconds
def task():
print("Task executed")

@scheduler.daily.at("14:30")
async def daily_task():
print("Daily task at 2:30 PM")

scheduler.start()


#FastScheduler #Python #Async #TaskScheduler #Cron #FastAPI #BackgroundJobs #DevTools #Monitoring #DeadLetterQueue

📱Ссылка на репозиторий:
https://github.com/MichielMe/fastscheduler
Please open Telegram to view this post
VIEW IN TELEGRAM
12⚡1👍1
📱Oban.

Oban — мощный фреймворк для оркестрации background jobs в Python на базе PostgreSQL. Надёжный, наблюдаемый, с enterprise‑фичами: async‑нативный, без лишних зависимостей, транзакционный контроль.

🔹Преимущества:

🔘Исторические метрики — jobs хранятся после выполнения для аудита/аналитики.
🔘Изолированные queues — concurrency per queue, без конкуренции (медленный reports не тормозит emails).
🔘Контроль — start/stop/pause/scale queues на лету.
🔘Cancel/Snooze — отмена/отложка jobs.
🔘Triggers — мгновенная диспетчеризация на всех нодах.
🔘Priority/CRON — 10 уровней приоритета, cron‑джобы без дубликатов.
🔘Graceful shutdown — slow jobs.
🔘Node metrics/Telemetry — мониторинг состояния.

🔻Быстрый старт:
from oban import worker, Snooze, Cancel

@worker(queue="exports", max_attempts=5)
class ExportWorker:
async def process(self, job):
if job.cancelled(): return Cancel("cancelled")
report = await generate_report(job.args["report_id"])
if report.status == "pending": return Snooze(seconds=30)
await send_to_user(job.args["email"], report)

# Enqueue
await ExportWorker.enqueue({"report_id": 123, "email": "user@example.com"})

# CLI
oban install --dsn postgresql://localhost/mydb
oban start --dsn postgresql://localhost/mydb --queues exports:10


#Oban #JobQueue #PostgreSQL #AsyncPython #BackgroundJobs #Workflows #Python #OpenSource

📱Ссылка на репозиторий:
https://github.com/oban-bg/oban-py
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍2🔥21