SharePoint TimeJob使用笔记
来源:互联网 发布:阳台柜 知乎 编辑:程序博客网 时间:2024/06/09 16:12
PS:TimeJob里面的代码有更新之后 需要重新启用TimeJob的服务,要不然执行的还是之前的代码
1,主要代码,创建一个TimeJob类,里面继承他需要继承的类,都是一个模式。
using Microsoft.SharePoint;using Microsoft.SharePoint.Administration;using Microsoft.SharePoint.Utilities;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Web;namespace NuctechProject{ public class MyTimerJob : SPJobDefinition { // 该构造只用于序列化和反列化,因为timer job的Definition 初始化后成为instance需要保存在数据库中 public MyTimerJob(): base() { } // 创建针对SPService application的timer job 是调用的构造 public MyTimerJob(string jobName, SPService service, SPServer server, SPJobLockType lockType) : base(jobName, service, server, lockType) { this.Title = "PlanWarn Timer Job";//此处是TimeJob的名称
} // 创建针对web application的timer job 是调用的构造 public MyTimerJob(string jobName, SPWebApplication webapp) : base(jobName, webapp, null, SPJobLockType.ContentDatabase) { this.Title = "PlanWarn Timer Job";//此处是TimeJob的名称
} // 每次执行到Timer Job时要执行的方法。跟据Timer Job 的Schedule public override void Execute(Guid targetInstanceId) { SPWebApplication webapp = this.Parent as SPWebApplication; SPContentDatabase contentDb = webapp.ContentDatabases[targetInstanceId]; // 取参数,通过Properties可以从外部传递参数,但要求参数可以被序列化和反列化 //需要执行的代码 }}
需要注意点:
1,this.Title = "PlanWarn Timer Job";//此处是TimeJob的名称
this.Title是设置你的TimeJob名字,到后面设置定时的时候需要找的
2,在public override void Execute(Guid targetInstanceId)里面写你的逻辑代码就好了
2,主要代码有了,现在创建一个Feature,以下代码均是自动生成。需要改的地方为
1,const string JobName = "PlanWarn Timer Job"; 此处的名字就是第一步的this.Title
2,修改FeatureActivated方法里面的new SPSite(http://demo1); 构造参数改成你配置的地址
using System;using System.Runtime.InteropServices;using System.Security.Permissions;using Microsoft.SharePoint;using Microsoft.SharePoint.Administration;namespace NuctechProject.Features.Feature1{ /// <summary> /// 此类用于处理在激活、停用、安装、卸载和升级功能的过程中引发的事件。 /// </summary> /// <remarks> /// 附加到此类的 GUID 可能会在打包期间使用,不应进行修改。 /// </remarks> [Guid("673a25ed-2556-42e5-ac1c-155ef01ae7d7")] public class Feature1EventReceiver : SPFeatureReceiver { // 取消对以下方法的注释,以便处理激活某个功能后引发的事件。 const string JobName = "PlanWarn Timer Job"; public override void FeatureActivated(SPFeatureReceiverProperties properties) { // 注意此处as 后面是SPSite还是SPWeb, SPFarm ...要根据Feature 的Scope SPSite site = new SPSite("http://demo1"); DeleteJob(site); // Delete Job if already Exists CreateJob(site); // Create new Job } private static void DeleteJob(SPSite site) { foreach (SPJobDefinition job in site.WebApplication.JobDefinitions) if (job.Name == JobName) job.Delete(); } private static void CreateJob(SPSite site) { // 初始化 SPJobDefinition MyTimerJob job = new MyTimerJob(JobName, site.WebApplication); // 传递参数 job.Properties.Add("SiteUrl", site.Url); // 设置 schedule, 可选 SPDailySchedule, SPWeeklySchedule, SPYearlySchedule,SPMonthlyByDaySchedule,SPHourlySchedule,SPMinuteSchedule SPMinuteSchedule schedule = new SPMinuteSchedule(); schedule.BeginSecond = 0; schedule.EndSecond = 5; schedule.Interval = 5; job.Schedule = schedule; job.Update(); } // 取消对以下方法的注释,以便处理在停用某个功能前引发的事件。 public override void FeatureDeactivating(SPFeatureReceiverProperties properties) { // 删除 Timer Job的实例 DeleteJob(properties.Feature.Parent as SPSite); // Delete the Job } // 取消对以下方法的注释,以便处理在安装某个功能后引发的事件。 //public override void FeatureInstalled(SPFeatureReceiverProperties properties) //{ //} // 取消对以下方法的注释,以便处理在卸载某个功能前引发的事件。 //public override void FeatureUninstalling(SPFeatureReceiverProperties properties) //{ //} // 取消对以下方法的注释,以便处理在升级某个功能时引发的事件。 //public override void FeatureUpgrading(SPFeatureReceiverProperties properties, string upgradeActionName, System.Collections.Generic.IDictionary<string, string> parameters) //{ //} }}
3,上面两步完成之后,就需要去作业定义里面设置,这个代码每隔多久执行一次了。
具体操作步骤请看这个
http://www.cnblogs.com/jianyus/p/3458535.html
我的是主要代码,上面的地址是每步骤,以及详细解释
2 0
- SharePoint TimeJob使用笔记
- 使用TimeJob
- SharePoint 2013 Timejob
- 深入浅出SharePoint——TimeJob编程
- sharepoint 2010 powershell 命令激活timejob feature
- sharepoint 如果timejob中的方法改变执行如下操作
- sharepoint 如果timejob中的方法改变执行如下操作
- Sharepoint学习笔记---SPList--使用Linq to Sharepoint间接查询External List(3.使用Linq to Sharepoint查询List内容)
- Sharepoint学习笔记—Debug&TroubleShooting--Correlation ID的使用
- SharePoint开发笔记
- [Sharepoint]使用UserControl 创建 sharepoint webpart ---SmartPart
- Sharepoint EventHandler使用总结
- Sharepoint:PeopleEdit 使用
- sharepoint SPFolder的使用
- SharePoint 使用技巧
- sharepoint SPFolder的使用
- SharePoint使用工作流功能
- SharePoint 2010 使用Session
- Spark Run WordCount On Hdfs using Scala
- 从海量数据中查找一个数
- java 虚拟机参数 -xms -xmx
- Android知识点Map表
- socket通信机制
- SharePoint TimeJob使用笔记
- MD5加密算法JAVA实现
- iOS学习笔记4 --关于xcode 5.1 x86 - 64 编译问题
- php一般赋值和引用赋值的区别
- Java面向对象
- Java Heap sapce 与 Java PermGen space
- win7系统安装ubuntu:ultraISO写u盘安装盘时,load iso文件时只有1个efi目录; 用Universal-USB-Installer写的u盘安装盘在启动后一直黑屏闪光标;
- java网络编程 demo1
- IOS之Storyboard导航大揭秘(1)