Unser System verwendet Quartz.Net für die Planung und hat mehrere Arten von Jobs (zB: Jobtyp A, Jobtyp B, Jobtyp C). Wir wollen vermeiden, dass bestimmte Arten von Jobs gleichzeitig laufen:Quartz.Net: Verhindern, dass verschiedene Jobtypen gleichzeitig ausgeführt werden
- Szenario 1: Jobs des Typs A nicht gleichzeitig mit anderen Stellen des Typs A 2
- Szenario ausführen können: Jobs des Typs B können nicht gleichzeitig mit Jobs ausführen vom Typ C (wenn dies dann wollen wir den Fall C Job zu ‚warten‘, bis das B Job beendet ist)
ich ich weiß Szenario zu implementieren, um das DisallowConcurrentExecutionAttribute
Attribut verwenden kann, 1. Aber ich kann nicht Figur Wie implementiert man Szenario 2 mit der integrierten Quartz.Net-Funktionalität?
Ich könnte die Anzahl der Worker-Threads auf 1 begrenzen, aber das wird alle Nebenläufigkeit beenden, was unerwünscht ist. (A-Jobs dürfen gleichzeitig mit B-Jobs laufen)
Natürlich diese Logik konnte ich in den Job-Programm, vorzugsweise aber ich will nicht Jobs des Typs B über Jobs des Typs wissen C.
Keine Ahnung, ob es funktionieren würde ... aber versuchen, eine Basis/abstrakte Klasse zu machen ...... (public abstract class MyTwoBuddiesNonCurrentBaseJob) ....... haben Ihre beiden Jobs erben von ihm ........ und setzen Sie Ihre Attribute auf die abstrakte Klasse. Ich bezweifle, dass es funktioniert, aber einen Versuch wert. – granadaCoder