Topshelf+Quartz.net+Dapper+Npoi(二)】的更多相关文章

背景 前段时间公司有个需求(每天给业务导出一批数据,以excel的形式通过邮件发送给他).A说:直接写个服务,判断等于某个时间点,执行一下sql语句,生成excel,写个EmaiHelper发送给他不就得了,这有什么麻烦的?B说:我了个亲娘来,还写服务呢?你还需要搞个timer去判断时间点?多费劲啊,直接写个控制台程序,添加个任务计划,不就搞定了吗?我只想说:你们都是大神,每次都不加点新的东西,还写什么代码,多么没劲啊,前两天看到了topshelf+quartz.net这个东东,可以做个练习了.…
quartznet 上篇说到quartznet这个东东,topshelf+quartznet有很多不错的文章,可以查看七七同学的文章(http://www.cnblogs.com/jys509/p/4628926.html).这里我主要说说cron表达式,如果玩过linux下定时任务的肯定不陌生. 官方英文介绍地址:http://www.quartz-scheduler.net/documentation/quartz-2.x/tutorial/crontrigger.html cron exp…
.net core+topshelf+quartz创建windows定时任务服务 准备工作 创建.net core 控制台应用程序,这里不做过多介绍 添加TopShelf包:TopShelf: 添加Quartz包:Quartz.Quartz.Plugins: 添加依赖注入包:Microsoft.Extensions.DependencyInjection: 添加读取配置文件包:Microsoft.Extensions.Configuration.Json: 添加访问数据库包:Microsoft.…
上一篇介绍了Rainbow的Create方法, 这里就来介绍一下Update方法吧, 毕竟新增和修改是双胞兄弟嘛. 一.Update 1. 测试代码: var conStr = ConfigurationManager.ConnectionStrings["Cons"].ToString(); using (var conn = new MySqlConnection(conStr)) { ); try { db.BeginTransaction(); ; i < ; i++)…
Spring的quartz定时器同一时刻重复执行二次的问题解决 最近用Spring的quartz定时器的时候,发现到时间后,任务总是重复执行两次,在tomcat或jboss下都如此. 打印出他们的hashcode,发现是不一样的,也就是说,在web容器启动的时候,重复启了两个quartz线程. 研究下来发现quartz确实会加载两次: 第一次:web容器启动的时候,读取applicationContext.xml文件时,会加载一次. 第二次:Spring本身会加载applicationConte…
在上一篇文章中,讲解了如何安装Dapper,这篇文章中将会讲解如何使用Dapper使用CURD操作. 例子中使用到的实体类定义如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DapperApplicationDemo.Model { public class User { public…
在我们日常开发工作中,经常会运用到Quartz+Topshelf组件的组合来开发一些定时任务.那么在.Net Core下如何去使用呢?我自己尝试搭建了一个测试项目,过程中遇到了以下一些问题: Quartz 配置文件及版本问题.我们知道Quartz有2个配置文件,quartz.config和quartz.job.xml.前者负责组件初始化配置,后者负责job和triggle的配置.刚开始我是直接把framework下的配置文件直接拿过来用的,启动直接报错.主要问题在quartz.config qu…
Quartz.NET官网   TopShelf 网址 代码地址:https://github.com/SeaLee02/ProjectDemo/tree/master/WindowServerDemo ①新建一个控制台 WindowServerDemo ②下载nuget包 Topshelf Topshelf.Log4Net --附带 log4net Quartz Quartz.Jobs Quartz.Plugins --不然在获取的会报错StdSchedulerFactory.GetDefaul…
Quartz.NET的任务调度,主要就是依靠CronTrigger和Cron表达式.Cron是已经在UNIX存在了很长一段时间,它有着强大和可靠的调度能力.CronTrigger类也正是是基于Cron调度能力. CronTrigger使用Cron表达式.它能灵活的设置各种计划任务,比如每周一至周五,早上8点执行某项任务.然而虽然Cron表达式功能强大,灵活,但是也很混乱难懂.所以便在这里介绍Cron表达式相关的配置.希望大家帮助大家快速理解. Cron格式 Cron表达式被用来配置CronTri…
很多时候,我们需要为一个服务器安装一堆的服务,来监控各种数据. 在windows服务器里,我们会部署专门的Quartz.Net多任务轮询服务. 同时,我们针对不同的任务制作专门的***Job.dll, 针对任务的Dll,考虑到升级问题,我们需要专门制作UpdateJob.dll来实现任务的业务逻辑的更新(.Net涉及到Appdomain的映射.复制和卸载):MarshalByRefObject 注:每次访问,都会有相应的Version信息带回,UPdateJob.dll只需要监视Version的…