.net core .net5 asp.net core mvc 与quartz.net 3.3.3 新版本调用方式
参照了:https://www.cnblogs.com/LaoPaoEr/p/15129899.html
1.项目Nuget引用Quartz.AspNetCore和Quartz.Extensions.DependencyInjection,3.3.3 及以上版本。
2.新建一个MyTestJob类:
using Quartz;
using System;
using System.IO;
using System.Text;
using System.Threading.Tasks; namespace AspNetCoreQuartz333.QuartzJob
{
[DisallowConcurrentExecution]
public class MyTestJob : IJob
{
public MyTestJob()
{
//构造函数里可注入
} public Task Execute(IJobExecutionContext context)
{
return Task.Run(() =>
{
using (StreamWriter sw = new StreamWriter(@"d:/Quartz-NET.txt", true, Encoding.UTF8))
{
sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff =>") + "1");
}
});
}
}
}
3.修改Startup-ConfigureServices方法,加入以下内容:
string thisJob = "TestJob"; string groupName = "gp" + thisJob;
string jobName = "job" + thisJob;
string triggerName = "trigger" + thisJob; //Quartz的工作单元
services.AddTransient<MyTestJob>();
//Quartz调度中心
services.AddQuartz(q =>
{
//用于注入
q.UseMicrosoftDependencyInjectionJobFactory();
// 基本Quartz调度器、作业和触发器配置
var jobKey = new JobKey(jobName, groupName);
q.AddJob<MyTestJob>(jobKey, j => j
.WithDescription("My work")
);
q.AddTrigger(t => t
.WithIdentity(triggerName)
.ForJob(jobKey)
.StartNow()
.WithSimpleSchedule(x => x.WithInterval(TimeSpan.FromSeconds(10))//开始秒数 10s
.RepeatForever())//持续工作
.WithDescription("My work trigger")
);
}); // ASP.NET核心托管-添加Quartz服务器
services.AddQuartzServer(options =>
{
// 关闭时,我们希望作业正常完成
options.WaitForJobsToComplete = false;
});
Startup完整代码:
using AspNetCoreQuartz333.QuartzJob;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Quartz;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks; namespace AspNetCoreQuartz333
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
} public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews(); //避免ConfigureServices方法过长,Quartz相关配置提取到了单独方法
QuartzConfigureServices(services);
} // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
} /// <summary>
/// 避免ConfigureServices方法过长,Quartz相关配置提取到了单独方法
/// </summary>
/// <param name="services"></param>
public void QuartzConfigureServices(IServiceCollection services)
{
#region Quartz string thisJob = "TestJob"; string groupName = "gp" + thisJob;
string jobName = "job" + thisJob;
string triggerName = "trigger" + thisJob; //Quartz的工作单元
services.AddTransient<MyTestJob>();
//Quartz调度中心
services.AddQuartz(q =>
{
//用于注入
q.UseMicrosoftDependencyInjectionJobFactory();
// 基本Quartz调度器、作业和触发器配置
var jobKey = new JobKey(jobName, groupName);
q.AddJob<MyTestJob>(jobKey, j => j
.WithDescription("My work")
);
q.AddTrigger(t => t
.WithIdentity(triggerName)
.ForJob(jobKey)
.StartNow()
.WithSimpleSchedule(x => x.WithInterval(TimeSpan.FromSeconds(10))//开始秒数 10s
.RepeatForever())//持续工作
.WithDescription("My work trigger")
);
}); // ASP.NET核心托管-添加Quartz服务器
services.AddQuartzServer(options =>
{
// 关闭时,我们希望作业正常完成
options.WaitForJobsToComplete = false;
}); #endregion
} }
}
END
.net core .net5 asp.net core mvc 与quartz.net 3.3.3 新版本调用方式的更多相关文章
- ASP.NET Core 用户注册 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 用户注册 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 用户注册 上一章节我们终于迁移完了 Identity 的数据,也创建 ...
- ASP.NET Core 视图 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 视图 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 视图 花了几章节,终于把 ASP.NET Core MVC 中的 C 控 ...
- ASP.NET Core 路由 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 路由 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 路由 前两章节中,我们提到 ASP.NET Core 支持 MVC 开发 ...
- ASP.NET Core 简介 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 简介 - ASP.NET Core 基础教程 - 简单教程,简单编程 ← ASP.NET Core 基础教程 ASP.NET Core Windows 环境配置 → A ...
- ASP.NET Core 中间件 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 中间件 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 中间件 上一章节中,我们我们有讲到 Startup 类中的 Confi ...
- .NET平台系列16 .NET5/Asp.Net Core 在全球Web框架权威性能测试 Web Framework Benchmarks 中的吊炸天表现
系列目录 [已更新最新开发文章,点击查看详细] TechEmpower Web Framework Benchmarks 是许多Web应用程序框架执行基本任务(如JSON序列化.数据库访问和服 ...
- 【.NET Core】ASP.NET Core之IdentityServer4(1):快速入门
[.NET Core]ASP.NET Core之IdentityServer4 本文中的IdentityServer4基于上节的jenkins 进行docker自动化部署. 使用了MariaDB,EF ...
- 【ASP.NET Core】ASP.NET Core 依赖注入
一.什么是依赖注入(Denpendency Injection) 这也是个老身常谈的问题,到底依赖注入是什么? 为什么要用它? 初学者特别容易对控制反转IOC(Iversion of Control) ...
- 【ASP.NET Core 】ASP.NET Core 源码学习之 Logging[1]:Introduction
在ASP.NET 4.X中,我们通常使用 log4net, NLog 等来记录日志,但是当我们引用的一些第三方类库使用不同的日志框架时,就比较混乱了.而在 ASP.Net Core 中内置了日志系统, ...
- 【ASP.NET Core】ASP.NET Core API 版本控制
几天前,我和我的朋友们使用 ASP.NET Core 开发了一个API ,使用的是GET方式,将一些数据返回到客户端 APP.我们在前端进行了分页,意味着我们将所有数据发送给客户端,然后进行一些dat ...
随机推荐
- KubeMeet|聊聊新锐开源项目与云原生新的价值聚焦点
简介: 10 月 16 日上海,OAM/KubeVela.OpenKruise.OCM 三大开源项目的社区负责人.核心贡献者和企业用户将齐聚 KubeMeet,和现场 100 名开发者聊聊新的技术环 ...
- WPF dotnet 6 开启 PM v2 的 DPI 感知 导致触摸线程访问 UI 属性抛异常
本文记录一个 WPF 在 dotnet 6 的一个已知问题,且此问题我已修复提交给官方仓库.这是一个只有在 dotnet 6 框架下,非 dotnet 5 也非 .NET Core 3.1 也非 .N ...
- WPF 列表控件数据源绑定多个数据集合方法
在 WPF 用的多的列表控件如 ListBox 或 ListView 等,本文告诉大家在这些列表控件上进行绑定多个数据集合来源的多个实现方法.如有一个显示动物列表的控件,需要绑定的数据来源是阿猫和阿狗 ...
- CMDB开发(二)
一.项目架构:目录规范 # 遵循软件开发架构目录规范 bin 启动文件 src 源文件(核心代码) config 配置文件 lib 公共方法 tests 测试文件 二.采集规范 # bin目录下新建s ...
- netcore5下js请求跨域
后端代码如下: using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System ...
- .Net项目部署到Docker
.Net项目部署到Docker 环境 linux docker .Net 7 步骤 编写Dockerfile 上传项目文件到linux 运行项目文件到docker 一.设置项目端口 在Program. ...
- 从零开始:Django项目的创建与配置指南
title: 从零开始:Django项目的创建与配置指南 date: 2024/5/2 18:29:33 updated: 2024/5/2 18:29:33 categories: 后端开发 tag ...
- 应急响应--linux入侵排查
- LVS负载均衡(4)-- LVS FWM防火墙标记
防火墙标记的作用是:借助于防火墙标记来分类报文,然后基于标记定义集群服务:可将多个不同的应用使用同一个集群服务进行调度. 实现方法: 在Director主机打标记,作用在mangle表的PREROUT ...
- fastposter v2.7.1 紧急发布 电商海报编辑器
fastposter v2.7.1 紧急发布 电商海报编辑器 fastposter海报生成器,电商海报编辑器,电商海报设计器,fast快速生成海报 海报制作 海报开发.二维码海报,图片海报,分享海报, ...