新建一个Windows服务项目

nuget安装Quartz.NET,我这边使用的是2.3.3版本

1. Service改名

2. 添加安装程序,改名

3. ServiceInstaller->属性->StartType改为Automatic

4. ServiceProcessInstaller->属性->Account改为LocalSystem

5. App.config->属性->始终复制(为log4net做准备,可以不设置)

Service->查看代码,修改如下

Service中包含了服务的初始化、启动、终止、暂停、重启等操作

     public partial class Service : ServiceBase
{
private IScheduler scheduler; public QuartzService()
{
InitializeComponent();
ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
scheduler = schedulerFactory.GetScheduler();
} /// <summary>
/// 启动windows服务
/// </summary>
/// <param name="args">args</param>
protected override void OnStart(string[] args)
{ scheduler.Start(); #region XXXJob string xxx_group_name = "XXXGroup";
string xxx_job_name = "XXXJob";
string xxx_trigger_name = "XXXTrigger";
string xxx_cron = "0/5 * * * * ?"; // 每5秒
IJobDetail xxx_job = JobBuilder.Create<XXXJob>()
.WithIdentity(xxx_job_name, xxx_group_name)
.Build(); ICronTrigger xxx_trigger = (ICronTrigger)TriggerBuilder.Create()
.WithIdentity(xxx_trigger_name, xxx_group_name)
.WithCronSchedule(xxx_cron)
.Build(); scheduler.ScheduleJob(xxx_job, xxx_trigger); #endregion
} /// <summary>
/// 终止windows服务
/// </summary>
protected override void OnStop()
{
scheduler.Shutdown();
} /// <summary>
/// 暂停windows服务
/// </summary>
protected override void OnPause()
{
scheduler.PauseAll();
} /// <summary>
/// 继续windows服务
/// </summary>
protected override void OnContinue()
{
scheduler.ResumeAll();
}
}

创建Jobs文件夹,创建XXXJob类,并集成IJob

     public class XXXJob : IJob
{
public void Execute(IJobExecutionContext context)
{
throw new NotImplementedException();
}
}

生成项目,在bin下找到exe,使用管理员模式的cmd创建服务,并启动即完成项目的运行

创建服务

sc create XXXService binpath= C:\XXX\XXXService.exe

删除服务

sc delete XXXService

这些还包括暂停、重启等等,都属于windows操作服务的常规命令

特别注意:

如何调试Windows服务

1. 附加程序

服务启动后,使用附加程序找到对应的exe即可

2. 控制台模式

[项目->属性->输出类型]改为控制台应用程序。

[项目->属性->启动对象]改为对应的Service

正式部署时,记得改回来

WindowsService+Quartz.NET快速搭建的更多相关文章

  1. 快速搭建一个Quartz定时任务【转载,好文 ,值得收藏,亲身试用 效果不错】

    Quartz.NET 入门 概述 Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔 ...

  2. Log4net快速搭建

    nuget安装log4net 2018.12.10当前版本为2.0.8 找到所在项目的[Properties->AssemblyInfo] 在底部加上 [assembly: log4net.Co ...

  3. 快速搭建多线程Windows服务解决方案

    一.引言 在软件开发过程中windows服务有的时候非常有用,用于同步数据,发送邮件,宿主WF引擎服务等,但是快速搭建一个好用多线程进行多任务处理的程序往往是一个项目必须考虑的问题.自己在项目中也经常 ...

  4. Nginx学习笔记--001-Nginx快速搭建

    Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为俄罗斯访问量第二的R ...

  5. Github pages + jekyll 博客快速搭建

    Github pages + jekyll 博客快速搭建 寻找喜欢的模版 https://github.com/jekyll/jekyll/wiki/sites http://jekyllthemes ...

  6. NodeJS 最快速搭建一个HttpServer

    最快速搭建一个HttpServer 在目录里放一个index.html cd D:\Web\InternalWeb start http-server -i -p 8081

  7. 利用yeoman快速搭建React+webpack+es6脚手架

    自从前后端开始分离之后,前端项目工程化也显得越来越重要了,之前写过一篇搭建基于Angular+Requirejs+Grunt的前端项目教程,有兴趣的可以点这里去看 但是有些项目可以使用这种方式,但有些 ...

  8. 基于Docker快速搭建多节点Hadoop集群--已验证

    Docker最核心的特性之一,就是能够将任何应用包括Hadoop打包到Docker镜像中.这篇教程介绍了利用Docker在单机上快速搭建多节点 Hadoop集群的详细步骤.作者在发现目前的Hadoop ...

  9. 基于 Jenkins 快速搭建持续集成环境

      什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火 ...

随机推荐

  1. delphi的万能数据库操作

    好多人都抱怨delphi没有提供一个可以把任意数据放入数据库的控件,虽然说用代码实现也不难,但是有控件会更方便,这次我终于还是抽出空来做了这么个控件,以后就可以直接拖放了.它支持把任意数据类型写入数据 ...

  2. 在win10 docker启动的centos容器中安装nginx

    我是在win10机器上搭建了一个docker,在docker启动了centos容器,在centos中安装nginx. 安装配置docker 直接在官网下载docker for windows:http ...

  3. XMU 1615 刘备闯三国之三顾茅庐(三) 【欧拉函数+快速幂+欧拉定理】

    1615: 刘备闯三国之三顾茅庐(三) Time Limit: 1000 MS  Memory Limit: 128 MBSubmit: 45  Solved: 8[Submit][Status][W ...

  4. publish and submit

    http://blog.csdn.net/w_jewelry/article/details/8123639 1.Gerrit里点击“publish and submit”提示如下:Your chan ...

  5. HDU1114 Piggy-Bank —— DP 完全背包

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1114 Piggy-Bank Time Limit: 2000/1000 MS (Java/ ...

  6. 日元兑换——国内兑换需要护照和签证,国外的机场有兑换ATM

    在中国换日元:在中国的商业银行都可以换取日元,但是换汇者必须持有护照.签证等材料.换汇的汇率是按照即时汇率进行结算,如是现钞则按钞买价兑换,另外还要收取0.5%的手续费. 在日本换日元:除了在日本银行 ...

  7. 【POJ 3140】 Contestants Division

    [题目链接] 点击打开链接 [算法] 树形DP ans = min{ | total - 2 * sum[k] | } (sum为以k为根的子树的权值和) [代码] #include <algo ...

  8. 【转】jenkins上配置robotframeworkride自动化脚本任务

    jenkins上配置robotframeworkride自动化脚本任务 编写好的自动化脚本,集成在jenkins上进行自动运行于监控,这里采用分布式构建,在一台slave上进行任务构建与自动化脚本的运 ...

  9. 276D

    贪心 想了一会觉得没什么很好的方法,看了题解 我们枚举每个二进制位,对于l,r如果这位相同就异或到答案里,否则停止,这里肯定是r比l大,也就是r这位是1而l是0,那么我们就让r这位选1,l选0,然后把 ...

  10. 【转载】HTML5自定义data属性

    可能大家在使用jquery mobile时,经常会看到data-role.data-theme等的使用,比如:通过如下代码即可实现页眉的效果:   [html]  <div data-role= ...