新建一个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. Supporting IPv6-only Networks

    Supporting IPv6-only Networks - Support - Apple Developer https://developer.apple.com/support/ipv6/ ...

  2. mybatis_2

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC ...

  3. JQuery报表工具

    推荐18个基于 HTML5 Canvas 开发的图表库   如今,HTML5 可谓如众星捧月一般,受到许多业内巨头的青睐.很多Web开发者也尝试着用 HTML 5 来制作各种各样的富 Web 应用.H ...

  4. bzoj3251

    3251: 树上三角形 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 637  Solved: 262[Submit][Status][Discuss ...

  5. 本地通信实例(AF_UNIX) (转载)

    转自:http://www.groad.net/bbs/thread-1709-1-1.html 程序说明:  程序里包含服务端和客户端两个程序,它们之间使用 AF_UNIX 实现本机数据流通信.使用 ...

  6. 安卓小程序的一次bug调试,报错:java.lang.NullPointerException,logcat学习

    做实验的时候,调试了很久后模拟器执行后,app还是会崩溃并停止运行,错误如下. 因为初学,所以也不知道怎么使用调试工具,也不懂看日志,经过学习后尝试这查看了LogCat日志上面有这样的提示: 其中引起 ...

  7. 再谈spark部署搭建和企业级项目接轨的入门经验(博主推荐)

    进入我这篇博客的博友们,相信你们具备有一定的spark学习基础和实践了. 先给大家来梳理下.spark的运行模式和常用的standalone.yarn部署.这里不多赘述,自行点击去扩展. 1.Spar ...

  8. linux系统资源限制ulimit

    ulimit命令用来限制系统用户对shell资源的访问.如果不懂什么意思,下面一段内容可以帮助你理解: 假设有这样一种情况,当一台 Linux 主机上同时登陆了 10 个人,在系统资源无限制的情况下, ...

  9. Django models模型

    Django models模型 一. 所谓Django models模型,是指的对数据库的抽象模型,models在英文中的意思是模型,模板的意思,在这里的意思是通过models,将数据库的借口抽象成p ...

  10. _bzoj1070 [SCOI2007]修车【最小费用最大流】

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1070 以后做网络流题目就是不能省内存... #include <cstdio> ...