Thursday, May 6, 2010

SharePoint Timer Job vs Windows Task Scheduler

This is another common question which confuses lot of developers as which option is better. Traditionally they have been writing console application and running them using Windows Task Scheduler, then why do we need SharePoint Timer Jobs.

Pros and Cons:
Considering a FARM scenario...

Single point of failure : Windows Task Scheduler need to be configured on all the web servers. If you configure to run the job on 1 server only, and this server crashes, job will not work at all.

Interface : Windows Task Scheduler have much easier interface for scheduling option. SharePoint doesn't have a UI to configure the jobs. There is a codeplex project though to bridge the gap. Still its hard to configure a job to run every X number of hours in share point, where-as it's easier with Windows Task Scheduler using multiple schedule options.

Status Reporting : Windows Task Scheduler doesn't have any reporting on when was the last time job got executed and what was the status. Only option is logging. Whereas SharePoint have a UI to show status of all the jobs and their status.

Security : In case of Windows Task Scheduler, you will need go to IT Admins and request for a special username/password to run such jobs where as SharePoint Timer Jobs automatically run under SharePoint Timer Job account.

Deployment : There is no easy way to deploy Windows Task Scheduler tasks and application which need to executed in a FARM environment. This will require lot of manual steps by IT Admin. SharePoint jobs can be deployed using WSP's.

SharePoint Timer Job