编写TimeJob
写一个TimeJob 比较简单,只要继承SPJobDefinition 并且实现里边的 Execute方法.
部署TimeJob
TimeJob部署也比较简单,只需要把程序集放到GAC里就可以了。
安装TimeJob
安装TimeJob先要删除上次部署在Sharepoint里的TimeJob.删除TimeJob的主要方法是根据TimeJob的名称进行删除.
foreach (SPJobDefinition job in site.WebApplication.JobDefinitions)
{
if (job.Name.Substring(0,Math.Min(prfName.Length,job.Name.Length)) == string.Format(TIMER_JOB_NAME,""))
{
job.Delete();
}
}
安装新的TimeJob 安装TimeJob需有定制一个计划.也就是Job什么时候工作,计划的类型有以下几种:
SPOneTimeSchedule |
SPMinuteSchedule |
SPHourlySchedule |
SPDailySchedule |
SPMonthlySchedule |
SPWeeklySchedule |
SPYearlySchedule |
每种计划使用方式不大一样.不过大同小异.基本一样.
如以下示例.
TimerJob timerJob = new TimerJob(string.Format(TIMER_JOB_NAME, i), site.WebApplication);
SPWeeklySchedule weekSchedule = new SPWeeklySchedule();
weekSchedule.BeginDayOfWeek = (DayOfWeek)i;
weekSchedule.EndDayOfWeek = (DayOfWeek)i;
weekSchedule.BeginHour = 8;
weekSchedule.EndHour = 8;
weekSchedule.BeginMinute = 1;
weekSchedule.EndMinute = 2;
weekSchedule.BeginSecond = 1;
weekSchedule.EndSecond = 20;
timerJob.Schedule = weekSchedule;
timerJob.Update();
这是个周计划的示例.意思是每周的第i天的8:01:01到8:02:20运行一次.
调试TimeJob
Debug TimeJob时需要重新启动Windows SharePoint Services Timer 服务。通过附加进程的方式调试。
总结
TimeJob编写及部署都很简单,安装一个TimeJob也不难主要是MOSS的计划任务有点不好理解。其次就是TimeJob在运行时没有一个界面只能通过记录日志的方式查看运行状态。当然可以通过查看管理中心查看上次运行时间。及是否运行完成。