AspNet MVC中使用Hangfire执行定时任务
Hangfire在Aspnet中执行定时任务:
第一步:
NuGet中加入Hangfire包
第二步:
添加Owin的自启动
第三步、Hangfire的后台控制仪表盘默认情况下只能本地访问,外网访问需实现IDashboardAuthorizationFilter接口,实现方式
/// <summary>
/// Hangfire仪表盘配置授权¶
/// </summary>
public class MyDashboardAuthorizationFilter : IDashboardAuthorizationFilter
{
public bool Authorize([NotNull] DashboardContext context)
{
return HttpContext.Current.User.Identity.IsAuthenticated;
}
}
第四步、在Startup.cs里面配置Hangfire
public class Startup
{
public void Configuration(IAppBuilder app)
{
//使用sqlserver持久化
GlobalConfiguration.Configuration
.UseSqlServerStorage("DefaultConnection"); //控制仪表盘的访问路径和授权配置
app.UseHangfireDashboard("/hangfire", new DashboardOptions
{
Authorization = new[] { new MyDashboardAuthorizationFilter() }
}); //指定轮询调度的间隔,根据实际情况设置
var options = new BackgroundJobServerOptions
{
SchedulePollingInterval = TimeSpan.FromMinutes()
};
app.UseHangfireServer(options); /*每天凌晨2点运行任务,Cron参数使用的是UTC时间和北京时间有区别,需要转换下*/
RecurringJob.AddOrUpdate(
() => 执行的任务
, Cron.Daily(, ));
}
}
AspNet MVC中使用Hangfire执行定时任务的更多相关文章
- MVC中使用Hangfire执行定时任务
需求描述 项目中有一个通知公告的功能,在后台管理员添加公告后需要推送消息给所有注册用户,让其查看消息.消息推送移动端采用极光推送,但是消息在何时发送是个问题,比如说有一个重要的会议通知,可能希望在会议 ...
- AspNet MVC中各种上下文理解
0 前言 AspNet MVC中比较重要的上下文,有如下: 核心的上下文有HttpContext(请求上下文),ControllerContext(控制器上下文) 过滤器有关有五个的上下文Actio ...
- SpringBoot中使用Scheduling执行定时任务
SpringBoot自带的 Schedule,可以将它看成一个轻量级的Quartz,而且使用起来比Quartz简单许多 以下任务都是在单线程下执行的 第一步 创建SpringBoot项目 第二步 外汇 ...
- MVC中使用Hangfire按秒执行任务
更新Hangfire版本到1.7.0,才支持使用按秒循环任务执行 RecurringJob.AddOrUpdate("test",()=>writeLog("每20 ...
- MVC中Action的执行过程
接着上一篇:MVC控制器的激活过程 一.代码现行,该伪代码大致解析了Action的执行的过程 try { Run each IAuthorizationFilter's OnAuthorization ...
- Spring Mvc中使用Task实现定时任务,以及遇到的一个问题
Spring中实现定时任务其实很简单,可以使用spring中自带的task 相当于轻量级的Quartz,并且spring 3.0 之后支持注解的方式,使用起来非常简单,方便,具体实现如下: 第一步,修 ...
- mvc中使用Hangfire处理后台任务
考虑下如下代码,在数据保存后,需要发送邮件,发送邮件是个耗时的工作. 我们的目的是,数据保存成功后,就可以返回响应了,发送邮件不重要,不需要等待邮件发送成功 [HttpPost] public Act ...
- aspnet mvc 中 跨域请求的处理方法
ASP.NET 处理跨域的两种方式 方式1,后端程序处理.原理:给响应头加上允许的域即可,*表示允许所有的域 定义一个cors的过滤器 加在在action或者co ...
- Aspnet MVC 异步调用
一个简图来描述下Aspnet MVC下的异步调用 { request } / \/ -------ISS------- > work thread | \ | \ route - aysn co ...
随机推荐
- 【Python】Python3纯代码极简教程
#!/usr/bin/python3 ''' Python3.6.x简单教程 示例.注释 交互式和脚本式编程 变量类型 数字(Number) 字符串(String) 列表(Li ...
- MyBatis源码解析(七)——DataSource数据源模块之托管数据源
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6675700.html 1 回顾 之前介绍的非池型与池型数据源都是MyBatis自己定义的内 ...
- centos7安装遇到的坑
1.安装中遇到what is the location of the gcc program on your machine 直接输入 no.意思就是跳过gcc的安装了.但是系统虽然安装了vmware ...
- Perl的输出:print、say和printf、sprintf
print.printf和say都可以输出信息.print和say类似,print不自带换行符,say自带换行符,但要使用say,必须写use语句use 5.010;,printf像C语言的print ...
- maven 工程依赖了某个jar包 但还是报java.lang.ClassNotFoundException的问题
一般出现这种情况,首先看看 pom.xml 文件引用的jar文件有没有损坏.或者下载不完整,打开maven仓库根据依赖地址可以查看. 如果还是出现问题,报 java.lang.ClassNotFoun ...
- [心得] 如何利用liquibase進行資料庫版本控制 - 基礎觀念
前言 - 會寫這篇除了是要記錄一下使用的過程之外,也是發現到網路上找來的教學幾乎都是跟其它環境做結合 比較沒有單純利用command進行的流程.也沒有整體觀念的介紹,所以將我所理解的整理分享給大家. ...
- 第一册:lesson ninety-nine。
原文: Ow ! Ow! What's the matter,Andy? l slipped and fell downstairs. Have you hurt yourself? Yes,I ha ...
- CentOS 7.6安装桌面
# yum -y groups install "GNOME Desktop" # startx
- Java集合性能分析-疯狂Java讲义
一.各Set实现类的性能分析 HashSet和TreeSet是Set的两个典型实现.HashSet的性能总是比TreeSet好(特别是最常用的添加.查询元素等操作),因为TreeSet需要额外的红黑树 ...
- GitHub:我们是这样弃用jQuery的
摘要: 技术债清理流程指南. 原文:Removing jQuery from GitHub.com frontend 译文:GitHub:我们为什么会弃用jQuery? 作者:GitHub 前端工程团 ...