AI OnAI Off
I suspect what you're looking for is IScheduledJobEvents. This interface allows you to hook in to the scheduled job's "Executed" event and check whether it was successful. I've not tried this on CMS 12 but a CMS 11 implementation would look something like this:
[InitializableModule]
public class ScheduledJobCompletionInitialisation : IInitializableModule
{
private IScheduledJobEvents _scheduledJobEvents;
public void Initialize(InitializationEngine context)
{
//Get reference to an instance of IScheduledJobEvents
_scheduledJobEvents = context.Locate.Advanced.GetInstance<IScheduledJobEvents>();
//Attach to scheduled job executed event
_scheduledJobEvents.Executed += executedScheduledJob;
}
private void executedScheduledJob(object sender, ScheduledJobEventArgs e)
{
//Check whether job failed and, if so, send email
if (e.Job.HasLastExecutionFailed) {
var jobName = e.Job.Name;
var errorMessage = e.Job.LastExecutionMessage;
//send email here
}
}
public void Uninitialize(InitializationEngine context)
{
//Clean up event
_scheduledJobEvents.Executed -= executedScheduledJob;
}
}
I created a new Service class and its interface -> ScheduledJobService ,IScheduledJobService
-this service contains methods to send mail when faces any exception while running a job
-Thera are many jobs and it is not convinient that calling this method in every job
-Is there any common class to all jobs so that implementation easy