Laden...

ASP.Net Core 2.0: Zeitabhängige Aufgaben mit welcher Dienstart ausführen

Erstellt von emuuu vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.425 Views
emuuu Themenstarter:in
286 Beiträge seit 2011
vor 6 Jahren
ASP.Net Core 2.0: Zeitabhängige Aufgaben mit welcher Dienstart ausführen

Guten Tag zusammen,

ich habe mal eine grundsätzliche Frage zu Services:
Ich habe eine ASP.Net Core 2.0 API die über verschiedene Clients verwendet wird. Nun möchte ich den gesamten Service um Funktionen ergänzen die zeitabhängig getriggert werden.

Als Beispiel:
Jemand legt über die API einen Termin an. Nun soll vom Service zwei Stunden vorher eine Erinnerungsmail an alle Teilnehmer gesendet werden.

Mich interessiert nun vor allem welche Technik/Service sich hierfür eurer Meinung nach am besten eignet. Als simpelste Lösung fällt mir der Windows-Service ein, der im Zeitintervall XY in der DB nachschaut welche Tasks anliegen und diese ausführt.

Da der Service unter anderem in einem Intranet läuft und auch ohne aktive Internetverbindung funktionieren soll würde ich gerne auf externe Lösungen wie Azure WebJobs verzichten.

Vielen Dank und beste Grüße
emuuu

2+2=5( (für extrem große Werte von 2)

T
2.219 Beiträge seit 2008
vor 6 Jahren

Würde ich in einem Task umsetzen, der durch die Aufgabenplanung getriggert wird.
Dieser würde dann prüfen ob es eben Termine gibt, die eine Erinnerung versenden müssen.
Die würde ich dann aber nicht über die API laufen lassen, sondern innerhalb der Business Schicht abbilden und im Task die entsprechende Methode aufrufen.
Somit ist deine API dann nur zum anlegen der Termine da und ihren aktuellen Funktionen.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

1.029 Beiträge seit 2010
vor 6 Jahren

Hi,

ich hab für etwas ähnliches HangFire eingesetzt - fand ich sehr angenehm.

LG

16.807 Beiträge seit 2008
vor 6 Jahren

Ja, Hangfire ist auch mein Tool der Wahl für jegliches Scheduling oder Job-Handling.
Auch im Bereich von Milliarden-Jobs sehr zuverlässig.

Ob man in Unternehmen immer mehr nach E-Mails auslagern sollte... das müsst ihr selbst wissen. Eigentlich geht man ja genau davon weg.
Termine haben im Standard ja bereits ein Feld für die zeitliche Erinnerung.

T
2.219 Beiträge seit 2008
vor 6 Jahren

Hangfire scheint wirklich genial zu sein.
Da man einen entsprechenden Server auch ganz einfach in einer Konsolen Anwendung starten kann, kann man dann dort auch die ganze Logik zum Versand durch einen einfachen Job erledigen lassen.
Wäre dann noch einfacher umzusetzen.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

16.807 Beiträge seit 2008
vor 6 Jahren

Hangfire scheint wirklich genial zu sein.
Da man einen entsprechenden Server auch ganz einfach in einer Konsolen Anwendung starten kann, kann man dann dort auch die ganze Logik zum Versand durch einen einfachen Job erledigen lassen.

ASP.NET Core ist eine Konsolenanwendung mit Extras wie Dependency Injection und Co.
Eine nackte Konsolenanwendung ist hier nicht zu empfehlen. Alles andere als "einfacher" umzusetzen.

emuuu Themenstarter:in
286 Beiträge seit 2011
vor 6 Jahren

Vielen Dank für den Tip! Werde mich mal in HangFire einarbeiten.

Ob man in Unternehmen immer mehr nach E-Mails auslagern sollte...

Bin ich auch kein Fan von, das war hier nur ein profanes Beispiel.
Mir gehts ganz allgemein um scheduled tasks, also alles von Informationen senden (z.B. per Push in eine App), über das Aufräumen von abgelaufenen Tokens bis hin zu Archivierungen.

2+2=5( (für extrem große Werte von 2)