Quartz_TimeJob例子(C#)
执行入口:
using System;
using System.Collections.Generic;
using log4net;
using Quartz;
using ypt_base.Common.Model;
using ypt_base.Common.Util.AD;
using ypt_base.Urms.BLL;
using ypt_base.Urms.Model.Res; namespace Quartz_TimerJob.TimeDevice
{
/// <summary>
/// 江苏YPT组织机构信息同步任务
/// </summary>
[DisallowConcurrentExecution] //不允许此 Job 并发执行任务(禁止新开线程执行)
public class SyncAdOrgUnitJob : IJob
{
private static readonly ILog Log = LogManager.GetLogger(typeof(SyncAdOrgUnitJob)); public void Execute(IJobExecutionContext context)
{
try
{
Log.InfoFormat("从AD域同步组织机构信息开始:{0}", DateTime.Now); // 获取AD域组织信息
List<ADModel> adList = new AdHelper().SyncOrgUnit(); // 获取组织维度信息
DictionaryManagerBLL dictBll = new DictionaryManagerBLL();
IList<UrmsDictionary> dimensionList = dictBll.GetDictionaryItemByType("orgDimension"); bool flag = false;
MetaOrgBLL orgBll = new MetaOrgBLL();
if (adList != null && adList.Count > )
{
flag = orgBll.SaveOrgUnitAndOrgUser(adList, dimensionList);
}
else
{
Log.WarnFormat("AD域中不存在所要获取的组织机构信息!");
} Log.InfoFormat(flag ? "从AD域同步组织机构信息成功!" : "从AD域同步组织机构信息失败!");
} catch (Exception ex)
{
Log.Error("从AD域同步组织机构信息异常", ex);
}
}
}
}
配置文件:
?xml version="1.0" encoding="UTF-8"?> <!-- This file contains job definitions in schema version 2.0 format --> <job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0"> <processing-directives>
<overwrite-existing-data>true</overwrite-existing-data>
</processing-directives> <schedule>
<!--江苏YPT同步组织机构任务配置-->
<job>
<name>SyncAdOrgUnitJob</name>
<group>SyncAdOrgUnitGroup</group>
<description>SyncAdOrgUnit job for Quartz Server</description>
<job-type>Quartz_TimerJob.TimeDevice.SyncAdOrgUnitJob, Quartz_TimerJob</job-type>
<durable>true</durable>
<recover>false</recover>
</job> <trigger>
<cron>
<name>SyncAdOrgUnitTrigger</name>
<group>SyncAdOrgUnitGroup</group>
<job-name>SyncAdOrgUnitJob</job-name>
<job-group>SyncAdOrgUnitGroup</job-group>
<cron-expression>0 23 15 * * ?</cron-expression>
<!--[秒] [分] [小时] [日] [月] [周] [年]-->
</cron>
</trigger> </schedule>
</job-scheduling-data>
Quartz_TimeJob例子(C#)的更多相关文章
- SQLServer地址搜索性能优化例子
这是一个很久以前的例子,现在在整理资料时无意发现,就拿出来再改写分享. 1.需求 1.1 基本需求: 根据输入的地址关键字,搜索出完整的地址路径,耗时要控制在几十毫秒内. 1.2 数据库地址表结构和数 ...
- C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)
第一次接触HtmlAgilityPack是在5年前,一些意外,让我从技术部门临时调到销售部门,负责建立一些流程和寻找潜在客户,最后在阿里巴巴找到了很多客户信息,非常全面,刚开始是手动复制到Excel, ...
- REGEX例子
作为REGEX的例子,代码9.3显示了一个给定的文件有多少行,具有给定的模式,通过命令行输入(注:有更有效率的方式来实现这个功能,如Unix下的grep命令,在这里只是给出了另一种方式).这个程序像下 ...
- CSharpGL(25)一个用raycast实现体渲染VolumeRender的例子
CSharpGL(25)一个用raycast实现体渲染VolumeRender的例子 本文涉及的VolumeRendering相关的C#代码是从(https://github.com/toolchai ...
- 简单例子了解View的事件分发
什么是事件分发 我们在写自定义ViewGroup或者自定义View的时候经常要处理用户的点击事件,如果我们的View在最底层,他在很多ViewGroup里面,我们如何让我们的点击事件准确传递到View ...
- 简单的例子了解自定义ViewGroup(一)
在Android中,控件可以分为ViewGroup控件与View控件.自定义View控件,我之前的文章已经说过.这次我们主要说一下自定义ViewGroup控件.ViewGroup是作为父控件可以包含多 ...
- kqueue例子
网络服务器通常都使用epoll进行异步IO处理,而开发者通常使用mac,为了方便开发,我把自己的handy库移植到了mac平台上.移植过程中,网上居然没有搜到kqueue的使用例子,让我惊讶不已.为了 ...
- 今天有群友不是很清楚htm直接存数据库的危害,我简单举个例子
通过这个案例就知道为什么不要把原生的html放数据库了 常见的几种转码 常用的几种显示方法 只有原生html和最下面一种弹框了,变成了持久xss 如果是Ajax的方式,请用@Ajax.JavaS ...
- ElasticSearch 5学习(5)——第一个例子(很实用)
想要知道ElasticSearch是如何使用的,最快的方式就是通过一个简单的例子,第一个例子将会包括基本概念如索引.搜索.和聚合等,需求是关于公司管理员工的一些业务. 员工文档索引 业务首先需要存储员 ...
随机推荐
- Aspxgridview 根据条件来自定义计算Totalsummery
protected void ASPxGridView1_CustomSummaryCalculate(object sender, DevExpress.Data.CustomSummaryEven ...
- WEB前端之HTML5~HTML5与HTML4的区别
推出的理由及目标 WEB浏览器存在的问题包括以下三点 世界知名浏览器厂商对HTML5的支持 语法的改变 DOCTYPE的声明 XHTML的DOCTYPE声明方式 HTML4的DOCTYPE声明方式 H ...
- iframe子页面获取父页面元素和window对象
项目中发现要在iframe的弹框中获取父页面中的元素,我们可以按照如下代码操作:$(window.parent.document).find('selector').attr('XXX') 如果我们需 ...
- c语言中数组,指针数组,数组指针,二维数组指针
1.数组和指针 ] = {,,,,};// 定义数组 // 1. 指针和数组的关系 int * pa = array; pa = array; // p[0] == *(p+0) == array[0 ...
- Django_admin源码流程
admin.py from django.contrib import admin from . import models """ 通过原生的django admin来 ...
- Majority Element——算法课上的一道题(经典)
Given an array of size n, find the majority element. The majority element is the element that appear ...
- 使用GitLab进行落地项目的管理,并且自动更新、重启、回滚
Gitlab 清空项目历史commit,节省空间 http://blog.csdn.net/dounine/article/details/77840416?locationNum=6&f ...
- javascript 的回调函数
既然函数可以像其他数据那样赋值给某个个变量,可以被定义.删除.拷贝,那为什么就不能被当成参数传递给其他函数呢? 下面的示例中,我们定义了一个以两个函数为参数的函数.该函数会分别执行这两个参数函数,并返 ...
- 关于 Unity WebGL 的探索(二)
关于 Unity WebGL 的探索(二) 上一篇博客记录了关于 WebGL 移植的第一步:部分 C/C++ 插件的编译,目前项目中的部分插件使用该方法通过,接下来比较大的一部分工作量是网络模块 We ...
- JZYZOJ1384 种花小游戏 状压dp
http://172.20.6.3/Problem_Show.asp?id=1384 最开始以为是dfs然后超时了,然后调了半天调成dp,还不如再写一遍... 代码 #include<iost ...