Thursday, November 24, 2016

Overview of Sitecore QuartzScheduler

In this blog I am highlighting the features and usage of Sitecore QuartzScheduler Module. This will be useful for anyone who wants to use this module

Problem this module addresses

  • Until know scheduling and knowing how your jobs are performing in Sitecore has been a challenge. By default jobs execute based on the sliding duration of app pool start and hence it is not predictive enough.
  • You dont know how long jobs are taking and whether they are having race conditions
  • I cannot execute a particular job on-demand
  • I cannot define multiple and complex schedules for a job


Solution

  • Sitecore QuartzScheduler is an attempt to address these pain points. This is based on industry proven Quartz Scheduler for .net - enterprise scheduler framework


Features
  • Bulit on Quartz.net - industry proven enterprise job scheduler
  • Manage and Define Jobs and when those jobs will trigger (according to server clock time and not app pool recycle sliding time)
    • Define triggers based on duration every few hours, minutes or seconds
    • Define triggers to fire daily
    • Define triggers that fire only certain days of the week
    • Define triggers that fire monthly once on any given day
    • If none-of the above suits your need - Define custom triggers based on cron- expression guidelines of Quartz.net
  • Job Performance Dashboard showing
    • Job Performance Average and Maximum time it has taken
    • Individual Job Performance - from last app pool recycle
    • Current Execution Status and next fire times for each job trigger defined
  • Execute a job on-demand (instead of waiting for schedule to trigger)
  • Download job performance data as a Json file (in the event you are recycling the app pool and want to retain this data before you do so)
  • Out of the box jobs for
    • Cleanup Publish Queue
    • Cleanup Event Queue
    • Cleanup History
  • You can create your own jobs and create definition items in Sitecore through Sitecore SPEAK app
  • Extensible - create your own trigger statistics store to store performance benchmarks for longer term rather than in application cache

Feature walk-through

Launch and Navigation

Quick launch button in the Launchpad

Sitecore QuartzScheduler - Sitecore Launchpad button


Simple navigation

Sitecore QuartzScheduler - Simple Navigation


Dashboard

To view Job performance summary on what is the avg time taken by a job and maximum time it has taken so far

Sitecore QuartzScheduler - Job Performance Summary


To view individual job performance trend

Sitecore QuartzScheduler - Job Performance Trend
Sitecore QuartzScheduler - Job Performance Trend



To view current job execution status and when the next trigger for each job will fire

Sitecore QuartzScheduler - Current Job Execution Status

Manage Jobs

Ability to manage and define your own jobs which are implemented according to Quartz.net guidance

Sitecore QuartzScheduler - Manage Jobs

Create / Edit Jobs

Sitecore QuartzScheduler - Crete / Edit Jobs

Create / Edit Triggers

Sitecore QuartzScheduler - Create / Edit Triggers

Refer installation instructions on my blog post here OR on Sitecore marketplace once it becomes available