新建一个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. 【Java报错】Message: 3 字节的 UTF-8 序列的字节 2 无效

    报错logs 2015-03-10 10:15:32,360 ERROR [qtp32195030-27] [InvokeAfterValve.java:55] - javax.xml.stream. ...

  2. java 编码设置

  3. [MAC] Load Crypto.Cipher.ARC4 Failed, Use Pure Python Instead.

    MAC启动GoAgent,出现Load Crypto.Cipher.ARC4 Failed, Use Pure Python Instead. 解决方法:为Python安装pycrypto,可通过Py ...

  4. add environment path to powershell

    https://4sysops.com/archives/use-powershell-to-execute-an-exe/ https://stackoverflow.com/questions/7 ...

  5. YTU 2441: C++习题 复数类--重载运算符2+

    2441: C++习题 复数类--重载运算符2+ 时间限制: 1 Sec  内存限制: 128 MB 提交: 847  解决: 618 题目描述 定义一个复数类Complex,重载运算符"+ ...

  6. Nvidia GPU 算力查询

    GPU Compute Capability Tesla K80 3.7 Tesla K40 3.5 Tesla K20 3.5 Tesla C2075 2.0 Tesla C2050/C2070 2 ...

  7. bzoj4052

    gcd 跟那道cf题是一个原理... 每一时刻我们最多有log个gcd,那么我们用map存储每种gcd最左端,每次和新的数gcd就更新新的gcd的最左端,然后更新答案 #include<bits ...

  8. UI:数据的解析

    在懒加载的时候要注意事项: 必须使用 self.XX 的样式去开辟空间,不能使用 _XX 的格式去开辟,因为前者是内部的 set 方法,而后者并不走内部的 set 方法. json 文件的创建  xm ...

  9. Python.h:No such file or directory

    出现No such file or directory的错误,有两种情况,一种是真的没有Python.h这个文件,一种是Python的版本不对, 可以进入/usr/include/文件夹下的Pytho ...

  10. linuxmint安装卡在探测文件系统,解决方法。

    今天安装linuxmint17.3,一直卡在探测文件... 解决方法如下: 执行安装程序前,打开终端执行如下命令即可. sudo umount -l /isodevic