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)
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.
Hi,
ich hab für etwas ähnliches HangFire eingesetzt - fand ich sehr angenehm.
LG
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.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
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.
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.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
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)