新建一个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. python3 安装 #zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz

    #zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz Modules/Setup.dist https://askubuntu ...

  2. evm指令集手册

    evm指令集手册 Opcodes 结果列为"-"表示没有运算结果(不会在栈上产生值),为"*"是特殊情况,其他都表示运算产生唯一值,并放在栈顶. mem[a.. ...

  3. linux 下使用exp/imp 或者expdp/impdp导出导入oracle数据表数据

    一.环境配置 1.执行环境: exp/imp可以在客户端执行也可以在服务器端执行,在客户端执行需要先安装有oracle的客户端,如果是linux系统,就是以oracle用户登录,在控制台下执行.建议在 ...

  4. I.MX6 Android stlport 使用

    /****************************************************************** * I.MX6 Android stlport 使用 * 说明: ...

  5. 并不对劲的bzoj4197:loj2131:uoj129:p2150:[NOI2015]寿司晚宴

    题目大意 有两个集合\(S_1,S_2 \subseteq [2,n] (n\leq 500)\),且对于\(\forall x\in S_1,y\in S_2 , gcd(x,y)=1\) 求\(S ...

  6. python-----实现微信撤回消息还原

    有时候用微信聊天,好友会撤回一些聊天记录,我们好奇,但又没法看,以下代码就可以满足大家的好奇心. #!/usr/bin/env python # -*- coding: utf-8 -*- # @Ti ...

  7. [九省联考2018]一双木棋chess——搜索+哈希

    题目:bzoj5248 https://www.lydsy.com/JudgeOnline/problem.php?id=5248 洛谷P4363 https://www.luogu.org/prob ...

  8. 使用expdp的心得

    第一步:首先使用DBA权限的用户创建directory,我使用system ,可以在服务器本地创建,也可以远程连接sqlplus进行创建,使用的将是服务器上面的路径.要确保创建directory时,操 ...

  9. hdu 5023(线段树区间染色,统计区间内颜色个数)

    题目描述:区间染色问题,统计给定区间内有多少种颜色? 线段树模板的核心是对标记的处理 可以记下沿途经过的标记,到达目的节点之后一块算,也可以更新的时候直接更新到每一个节点 Lazy操作减少修改的次数( ...

  10. 返回一个集合对象,同时这个集合的对象的属性又是一个集合对象的处理方法(ViewModel)

    如果遇到需要返回一个集合对象,其中该集合中的属性又是一个集合.第一种:可在考虑用外键关联,比如在控制器中可以采用预先加载的方式加载关联的数据,比如 RoleManager.Roles.Include& ...