Get last run of a scheduled job in Optimizely CMS
There could be several reasons for getting the time of last execution for a scheduled job in Optimizely CMS.
- Perform some operation on content created since last execution
- Monitor that the job actually executes
- Just because you can
The code below first gets the job details using the Full Name (namespace + class name) without hard-coding any values. Then reads the LastExecution property. This is the same data you'll see in the Scheduled Jobs overview in the Optimizely CMS UI.
var scheduledJobRepository = ServiceLocator.Current.GetInstance<IScheduledJobRepository>();
var job = scheduledJobRepository.List()
.Where(x => x.TypeName.Equals(typeof(MyJob).FullName))
.FirstOrDefault();
var lastExecution = job?.LastExecution;
In your own code, use dependency injection instead of ServiceLocator
, if possible.
If you need to get the last successful (or failed) execution of the job, you should look at IScheduledJobLogRepository
instead.
That's it!
Found this post helpful? Help keep this blog ad-free by buying me a coffee! ☕