Hallo zusammen,
ich baue eine Applikation, die mehrere User hat.
Jeder User kann Jobs einplanen, die zu einem bestimmten Datum / Uhrzeit laufen sollen.
Dies kann bspw. sein:
- Erinnerung per Email senden
- Automatische Email verschicken (z.B. an Kunde)
- Automatisch ein Angebot erstellen + verschicken
- usw.
Im Moment habe ich hierzu eine DB-Tabelle.
- ID
- plannedExecutionDate
- status (STARTED, OUTSTANDING...)
In meinem @EJB - Container habe ich einen Scheduler eingerichtet, der jede Minute prüft, ob es in der DB ausstehende Einträge gibt, die über dem plannedExecutionDate sind.
Wenn ja, werden diese ausgeführt.
Innerhalb einer Schleife werden diese dann ausgeführt.
- Per Applikation Server manage ich diese Anzahl an Threads
- Jede ausgeführte Aktivität läuft in einem eigenen Thread
Welche Frage ich mir nun allerdings stelle:
- Was passiert, wenn es Jobs gibt, die alles blockieren?
- Bspw. eine Email wird nicht versendet und hängt noch in der Queue?
-> Habe ich z.B. die Möglichkeit diese automatisiert abzubrechen (wenn sie ein gewisses Zeitlimit überstiegen haben).
Oder wie kann ich das machen?
Ich habe Angst, dass das System irgendwann durch solche Jobs blockiert wird.
Vielen Dank
ich baue eine Applikation, die mehrere User hat.
Jeder User kann Jobs einplanen, die zu einem bestimmten Datum / Uhrzeit laufen sollen.
Dies kann bspw. sein:
- Erinnerung per Email senden
- Automatische Email verschicken (z.B. an Kunde)
- Automatisch ein Angebot erstellen + verschicken
- usw.
Im Moment habe ich hierzu eine DB-Tabelle.
- ID
- plannedExecutionDate
- status (STARTED, OUTSTANDING...)
In meinem @EJB - Container habe ich einen Scheduler eingerichtet, der jede Minute prüft, ob es in der DB ausstehende Einträge gibt, die über dem plannedExecutionDate sind.
Wenn ja, werden diese ausgeführt.
Innerhalb einer Schleife werden diese dann ausgeführt.
- Per Applikation Server manage ich diese Anzahl an Threads
- Jede ausgeführte Aktivität läuft in einem eigenen Thread
Welche Frage ich mir nun allerdings stelle:
- Was passiert, wenn es Jobs gibt, die alles blockieren?
- Bspw. eine Email wird nicht versendet und hängt noch in der Queue?
-> Habe ich z.B. die Möglichkeit diese automatisiert abzubrechen (wenn sie ein gewisses Zeitlimit überstiegen haben).
Oder wie kann ich das machen?
Ich habe Angst, dass das System irgendwann durch solche Jobs blockiert wird.
Vielen Dank