Step 1: Open Visual
Studio 2010 | New Project | Empty Sharepoint Project | its name TimerJob2010
Step 2: Choose “Deploy
as farm solution”
Step 3: Add new Class,
its name TimerJobClass.cs
Step 4: Inherit class
from Microsoft.SharePoint.Administration.SPJobDefinition class. And code as
Code here
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint.Administration;
using Microsoft.SharePoint;
namespace TimerJob2010
{
class TimerJobClass : SPJobDefinition
{
public TimerJobClass()
: base()
{
}
public TimerJobClass(string jobName, SPService service, SPServer server, SPJobLockType targetType)
: base(jobName, service, server, targetType)
{
}
public TimerJobClass(string jobName, SPWebApplication webApplication)
: base(jobName, webApplication, null, SPJobLockType.ContentDatabase)
{
this.Title = "Timer Job 2010";
}
public override void Execute(Guid contentDbId)
{
// get a reference to the current site
collection's content database
SPWebApplication webApplication = this.Parent as SPWebApplication;
SPContentDatabase contentDb =
webApplication.ContentDatabases[contentDbId];
// get a reference to the
"ListTimerJob" list in the RootWeb of the first site collection in
the content database
SPList Listjob = contentDb.Sites[0].RootWeb.Lists["TimerJob2010"];
// create a new list Item, set the Title to
the current day/time, and update the item
SPListItem newList = Listjob.Items.Add();
newList["Title"] = DateTime.Now.ToString();
newList.Update();
}
}
}
Step 5: Right click on
Feartures | Add Feature
Step 6: You can rename
Feature as
Step 7: Right click on
Feartures | Add Event Receiver
Step 8: Code as
Code here
using System;
using System.Runtime.InteropServices;
using System.Security.Permissions;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Security;
using Microsoft.SharePoint.Administration;
namespace TimerJob2010.Features.TimerJobFeature
{
/// <summary>
/// This class handles events raised during feature
activation, deactivation, installation, uninstallation, and upgrade.
/// </summary>
/// <remarks>
/// The GUID attached to this class may be used during
packaging and should not be modified.
/// </remarks>
[Guid("3bec3dd0-3cf3-419e-8c12-1adcbf7d2abc")]
public class TimerJobFeatureEventReceiver : SPFeatureReceiver
{
const string ListTimerJob = "ListTimerJob";
// Uncomment the method below to handle the
event raised after a feature has been activated.
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
SPSite site = properties.Feature.Parent as SPSite;
// make sure the job isn't already registered
foreach (SPJobDefinition job in site.WebApplication.JobDefinitions)
{
if (job.Name == ListTimerJob)
job.Delete();
}
// install the job
TimerJobClass listLoggerJob = new TimerJobClass(ListTimerJob,
site.WebApplication);
SPMinuteSchedule schedule = new SPMinuteSchedule();
schedule.BeginSecond
= 0;
schedule.EndSecond
= 59;
schedule.Interval
= 5;
listLoggerJob.Schedule
= schedule;
listLoggerJob.Update();
}
// Uncomment the method below to handle the
event raised before a feature is deactivated.
public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
{
SPSite site = properties.Feature.Parent as SPSite;
// delete the job
foreach (SPJobDefinition job in site.WebApplication.JobDefinitions)
{
if (job.Name == ListTimerJob)
job.Delete();
}
}
}
}
Step 9: Right click
Feature | View Designer
Step 10: Change cope
from Web to Site
Step 11: If cope
incorrect, appear as
Step 12: Build project
and Deploy it
Step 13: Go to Central
Admin | Check job status
Step 14: You see custom
timer job created, click to timer job and configure
Step 15: Configure time
execute
Step 16: Open your web
application | Open your list and see item was created