Share Point 创建 TimerJob


public class SyncMetadataJob:SPJobDefinition
{
private const string JobName = @"Metadata Sync Job";
private int counter = 0;

public SyncMetadataJob() : base() { }

public SyncMetadataJob(string jobName, SPService service)
: base(jobName, service, null, SPJobLockType.ContentDatabase) {
this.Title = JobName;
}

public SyncMetadataJob(string jobName, SPWebApplication webapp) :
base(jobName, webapp, null, SPJobLockType.ContentDatabase)
{
this.Title = JobName;
}

public override void Execute(Guid targetInstanceId) {
SPSecurity.RunWithElevatedPrivileges(delegate()
{
try
{
counter = 0;
Log("Sync Metadata Job Started.");
var lastSyncDate = getLastSyncDate();
syncMetaData(lastSyncDate);
updateLastSyncDate();
Log(string.Format("Sync Metadata {0} terms Updated.", counter));
Log("Sync Metadata Job Completed.");
}
catch (Exception ex)
{
Log(string.Format("Sync Metadata Job thrown an exception:{0}.", ex.ToString()));
}

});
}
}
}


public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
SPSite site = properties.Feature.Parent as SPSite;
DeleteSyncMetadataJob(site);
CreateSyncMetadataJob(site);
}

// 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;
DeleteSyncMetadataJob(site);
}

private void CreateSyncMetadataJob(SPSite site)
{
var syncMetadataJob = new SyncMetadataJob(metadataSyncJobName, site.WebApplication);
var schedule = new SPMinuteSchedule();
schedule.BeginSecond = 0;
schedule.EndSecond = 59;
schedule.Interval = 3; //60 * 24 * 3; //per 3 days
syncMetadataJob.Schedule = schedule;
syncMetadataJob.Update();
}

private void DeleteSyncMetadataJob(SPSite site)
{
foreach (var job in site.WebApplication.JobDefinitions)
{
if (job.Name == metadataSyncJobName)
job.Delete();
}
}

Share Point 创建 TimerJob,布布扣,bubuko.com

时间: 2024-10-06 22:46:05

Share Point 创建 TimerJob的相关文章

manila nfs 删除 share 分析

1.mania/share/manager.py 2144行,调用delete_share_instance删除share instance     def delete_share_instance(self, context, share_instance_id, force=False):         """Delete a share instance."""         context = context.elevated()

创建一个catkin工作空间

先确定自己的环境变量是否设置正确 export | grep ROS 若出现如下的,说明是正确的 declare -x ROSLISP_PACKAGE_DIRECTORIES="" declare -x ROS_DISTRO="indigo" declare -x ROS_ETC_DIR="/opt/ros/indigo/etc/ros" declare -x ROS_MASTER_URI="http://localhost:11311

OpenStack 系列之File Share Service(Manila)详解

首先说下什么是OpenStack? OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作.OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单.可大规模扩展.丰富.标准统一的云计算管理平台.OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服 务提供API以进行集成.用Python语言编写. 什么是NAS服务? 众所周知,存储有几种类型的存储,DAS(Direct Attached Storage),NAS(Net

ubuntu18.04下eclipse配置及快捷方式创建

我们在windows下开发时间长了,大家可能知道,eclipse是不需要安装的,只需要解压后,配置好环境变量就可以使用了,但是在Linux下可能出现一些问题,下面我们基于最新的Ubuntu18.04及最新的eclipse来说明eclipse的使用,接下来两步就可以快速使用了. 1.创建快捷方式 Linux下快捷方式目录在/usr/share/applicaitons/ 创建eclipse.desktop [Desktop Entry] Encoding=UTF-8 Name=eclipse Ex

ubuntu下 给eclipse创建桌面启动快捷图标

1.在/usr/share/applications创建一个名为"eclipse.desktop"的文件 具体命令为: gedit eclipse.desktop 并添加以下内容: [Desktop Entry] Encoding=UTF-8 Name=Eclipse Platfrom Comment=Eclipse IDE Exec=/home/lgh/Desktop/eclipse/eclipse Icon=/home/lgh/Desktop/eclipse/icon.xpm Te

Visual Studio 2019 使用 Live Share

一.前言 Visual Studio 2019 在今天发布(北京时间)了,这次带来了一个比较有趣的 Live Share 功能,使用它可以进行更好的协作开发.主要功能: 更多资料可看官方介绍: Visual Studio 实时共享 什么是Visual Studio Live Share? 二.Visual Studio Code 注意事项 Live Share 可以在 Visual Studio 2019 和 Visual Studio Code 上使用. 在 Visual Studio Cod

ubuntu 中pycharm 创建快捷方式

1)在/usr/share/applications创建一个文件:pycharm.desktop(touch,gedit,nano指令等) cd /usr/share/applicationssudo gedit pycharm.desktop2)编辑这个文件,添加以下内容 [Desktop Entry]Version=1.0Type=ApplicationName=PycharmIcon=/home/mengdan/Downloads/pycharm-2018.2.1/bin/pycharm.

linux 基础知识

一.linux哲学思想 1.一切皆文件 2.由目的单一的小程序组成,组合小程序完成复杂任务 3.避免与用户交互(避免图形界面,图形界面更易出现bug,稳定性差) 4.配置数据保存于文本文件中(系统启动不了时,依旧可以打开.修复配置文件) 二.常见发行版本 slackware:SUSE Linux Enterprise Server (SLES) opensuse桌面debian: ubuntu,mintredhat:rhel: redhat enterprise linux           

Ubuntu下配置samba实现文件夹共享

转自:http://www.cnblogs.com/phinecos/archive/2009/06/06/1497717.html 一. samba的安装: sudo apt-get insall sambasudo apt-get install smbfs 二. 创建共享目录: mkdir /home/phinecos/sharesodu chmod 777 /home/phinecos/share 三. 创建Samba配置文件: 1. 保存现有的配置文件 sudo cp /etc/sam