开发TimerJob定时器作业运行多次的问题
要解决这个问题,必须理解下面理论,那就很容易理解错误的地方了,其实这不是错,只是不符合自己的用法,
开发TimerJob关键在于SPJobDefinition,新建TimerJob类必须继承SPJobDefinition,而SPJobDefinition构造函数有两个参数:SPServer和SPJobLockType。
SPServer:将该TimerJob安装到指定的服务器上。若传NULL值,则会将TimerJob安装到SPFarm的所有服务器上。
SPJobLockType:枚举类型。
- SPJobLockType.None 运行在所有有TimerJob的服务器上:若有n台,则执行n次
- SPJobLockType.ContentDatabase 将为Web Application里的每个内容数据库执行一次:若当前应用程序有n个内容数据库,则执行n次
- SPJobLockType.Job 不管此三七二十一,就执行1次
所以只需要改成SPJobLockType.job就可以解决