Создание абстрактного базового класса - это всего лишь предложение, сделанное в документации Quartz.NET, и не является обязательным условием для реализации цепочки заданий.По сути, они предполагают, что если вы хотите объединить задания: «AJob» -> «BJob» -> «CJob», вы должны сделать что-то вроде этого:
Создать рефератclass "ChainBaseJob".
Сделайте ваш класс заданий (типом которого являются AJob и BJob) наследование от ChainBaseJob.
ChainBaseJob будет содержатькакой-то метод, такой как:
string GetNextJobInChain()
... который возвращает имя задания (то есть имя задания Quartz).Есть множество способов использовать это, но я предполагаю, что документация предлагает, чтобы ваш TriggerListener проверял (во время метода завершенного задания), если завершенное задание (скажем, «AJob») наследуется от ChainBaseJob.Если это произойдет, он применит его и вызовет GetNextJobInChain, а также использует имя, возвращаемое методом, для вызова планировщика для его выполнения после завершения AJob.Если все реализовано правильно, TriggerListener будет знать, как выполнить BJob после завершения AJob.
Удачи.