PyForge è in vendita solo qui, sul sito ufficiale py-forge.com — diffida delle imitazioni.

Torna al catalogo
CronPulse CLIAI & Automation

CronPulse CLI

#python#automation#microsaas

Smetti di pagare 20–80 $/mese per i servizi SaaS di monitoraggio dei cron. CronPulse CLI è un watchdog in Go self-hosted e senza dipendenze che rileva fallimenti silenziosi, overrun e crash dei cron. Offre alert istantanei su Slack/Discord/Telegram, binari multi-architettura, configurazioni Docker e una dashboard integrata.

Leggi l'approfondimento tecnicoBasta SaaS per il Monitoraggio dei Cron: Watchdog Zero-Dipendenze con CronPulse CLI
main.pymain.py — estratto d'esempio nello stile del tool
#!/usr/bin/env python3
"""
CronPulse CLI - Zero-Dependency Cron Monitoring & Alerting Engine

A production-grade Python watchdog detecting silent cron failures, execution
overruns, and process crashes with instant multi-channel alerts.

Features:
- Real-time command execution wrapper and exit code tracking
- Native Slack, Discord, and Telegram webhook notification dispatching
- Hard timeout enforcement and stale job overrun detection
- Zero-dependency state engine using standard library JSON persistence
- Lightweight metrics formatting for dashboard integration

Usage:
  $ cronpulse run --name "daily-backup" --timeout 600 -- python backup.py
  $ cronpulse report --format json --last 24h
"""

from __future__ import annotations

import enum
import json
import os
import sys
import time
from dataclasses import asdict, dataclass, field
from pathlib import Path
from typing import Any, Dict, List, Optional


class JobState(str, enum.Enum):
    """Execution status for monitored process runs."""
    PENDING = "pending"
    RUNNING = "running"
    SUCCESS = "success"
    FAILED = "failed"
    TIMEOUT = "timeout"
    OVERRUN = "overrun"


@dataclass(frozen=True)
class ExecutionMetrics:
    """Domain model representing execution metrics for a single job run."""
    job_name: str
    state: JobState
    start_time: float
    end_time: Optional[float] = None
    exit_code: Optional[int] = None
    error_details: Optional[str] = None


class CronPulseEngine:
    """Core supervisor responsible for execution monitoring and alerting."""
# ... the full file ships with your download