Cron: Bereich mit Schritt (7-22/3) lesen, ungueltige Ausdruecke im Scanner melden (#597)
Der Nachrichten-Digest im Dauerbetrieb der Test-VM lief nie: CronExpression verstand 'von-bis/schritt' nicht, TaskSchedule verschluckte den Fehler. Version 0.1.5. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -60,6 +60,29 @@ public static class TaskSchedule
|
||||
? when.TimeZone
|
||||
: null;
|
||||
|
||||
/// <summary>
|
||||
/// Der Parserfehler eines Cron-Termins, wenn der Ausdruck ungültig ist — sonst
|
||||
/// <c>null</c>.
|
||||
///
|
||||
/// Ein solcher Termin feuert nie (<c>DueCron</c> fängt den Fehler ab, damit ein
|
||||
/// kaputter Ausdruck nicht den ganzen Takt kippt). Wie bei der Zeitzone meldet der
|
||||
/// Scanner das einmal je Aufgabe — vorher stand die Aufgabe als <c>todo</c> mit Termin
|
||||
/// im Taskboard und lief schlicht nie (#597).
|
||||
/// </summary>
|
||||
public static string? InvalidCron(TaskItem task)
|
||||
{
|
||||
if (task.When is not { Kind: TaskWhenKind.Cron } when) return null;
|
||||
try
|
||||
{
|
||||
CronExpression.Parse(when.Value);
|
||||
return null;
|
||||
}
|
||||
catch (FormatException ex)
|
||||
{
|
||||
return ex.Message;
|
||||
}
|
||||
}
|
||||
|
||||
private static string? DueAt(TaskWhen when, string? marker, DateTime nowUtc)
|
||||
{
|
||||
if (marker is not null) return null; // ein einmaliger Termin feuert genau einmal
|
||||
|
||||
Reference in New Issue
Block a user