{"repo":"peopleworks/RunCommandsService","free":true,"listed":false,"github":"https://github.com/peopleworks/RunCommandsService","clone":"git clone https://github.com/peopleworks/RunCommandsService.git","description":"Lightweight .NET 9 Windows service that runs commands on cron schedules - concurrency control, timeouts, alerts, and a live monitoring dashboard.","language":"C#","stars":10,"topics":["cron","csharp","dashboard","dotnet","job-scheduler","net9","scheduler","task-scheduler","windows-service","codeboarding"],"license":"MIT","category":"dashboards-admin","readme_excerpt":"Scheduled Command Executor — Windows Service A lightweight .NET 9 Windows Service that runs commands on cron schedules, with concurrency control, per‑job timeouts, a live monitoring dashboard, optional email/webhook alerts, and a simple JSON config with hot‑reload. v2.9 — Production resilience & observability: 80+ timezone mappings, startup validation report, scheduler heartbeat on /api/health , exponential backoff on errors, and richer diagnostics throughout. See the Changelog for the full history. --- 📸 Dashboard preview Live dashboard: KPI cards, scheduled jobs with next-run times, recent executions, and a tail of the service logs — all in your local time. 🔍 Overview This service lets administrators: - Schedule command execution using standard cron expressions (with per‑job time zones). - Update jobs without restarting the service (hot‑reload of appsettings.json ). - Monitor execution through a built‑in HTTP dashboard and a JSON health endpoint. - Run jobs safely with concurrency locks, per‑job timeouts, and optional alerts. ✨ Features - Cron-based scheduling — standard 5‑field cron expressions, computed with Cronos. - Per-job time zones — 80+ IANA IDs plus native Windows IDs, with DST‑correct next‑run calculation. - Safe concurrency — global MaxParallelism plus per‑job ConcurrencyKey locks to prevent overlap on shared resources. - Runtime limits — per‑job MaxRuntimeMinutes auto‑kills hung processes. - Hot configuration reload — edits to appsettings.json apply without a ","default_branch":null,"files":null,"tree":[],"storefront":"/r/peopleworks","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/peopleworks/RunCommandsService/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}