HangFire简单实践
Hangfire在.net core WebAPI中的简单应用
安装Hangfire
在visual studio中 工具 >> Nuget包管理器 >> 程序包管理控制器 打开nuget控制台
输入
Insatll-Package Hangfire
安装HangFire,等待安装完成结果如下图:
注册及配置Hangfire(使用Sql Server)
在 appsettings.json 文件中添加数据库连接字符串配置
(```)
"ConnectionStrings": {"defaultDB": "Server=.;Database=ApiDataBase;uid=sa;pwd=svse;MultipleActiveResultSets=true"}
(```)
在 Startup.cs 文件中的 ConfigureServices 方法中写入代码
(```)
// 为Hangfire使用数据库连接services.AddHangfire(configuration => configuration.UseSqlServerStorage(Configuration.GetConnectionString("defaultDB")));// 注册Hangfire服务services.AddHangfireServer();
(```)
同时在 Configure 方法中写入代码
(```)
// 为Hangfire使用数据库连接services.AddHangfire(configuration => configuration.UseSqlServerStorage(Configuration.GetConnectionString("defaultDB")));// 注册Hangfire服务services.AddHangfireServer();
(```)
查看Hangfire管理视图
运行项目,然后在项目地址后面加上 hangfire 即可查看Hangfire管理视图
例:项目地址是: https://localhost:44323/weatherforecast ,输入 https://localhost:44323/hangfire即可访问
调度代码应用
支持基于队列的任务处理:任务执行不是同步的,而是放到一个持久化队列中,以便马上把请求控制权返回给调用者。
var jobId = BackgroundJob.Enqueue(() => function());
延迟执行任务,不是马上调用方法,而是设定一个未来的时间来执行,延迟作业仅执行一次
var jobId = BackgroundJob .Schedule(()=> function(),TimeSpan .FromDays(1));
//这里设置的是一天后执行循环执行,一行代码添加重复执行的任务,其内置了常见的时间循环模式,也可基于CRON表达式来设定复杂的模式。
RecurringJob.AddOrUpdate(() => function(), Cron.Minutely);//最小单位是分钟,即最低仅可按照一分钟一次执行
延续性任务执行,可以在第一个任务执行完之后紧接着再次执行另外的任务,指定在某一个任务完成后立即执行你想执行的任务
BackgroundJob.ContinueWith(jobId, () => function());
部署
数据库创建
按照appsettings.json文件中配置的数据库名称建立数据库
打开sqlserver >> 点击新建查询,然后执行下面代码即可(数据库名需和
appsettings.json
配置文件中的一致).net core webapi部署到iis
- 安装.net core runtime,下载地址: https://dotnet.microsoft.com/download
- 点击WebApi项目右键->发布,选择IIS为发布目标,点击发布;
- 选择文件系统,指定发布路径 ,选择release配置,框架对应项目使用框架,然后保存确定
- 打开IIS服务器,添加网站,物理路径选择发布的路径,配置端口号为你想要的端口,确定。
- 打开应用程序池,选择对应的同名应用程序池->右键->基本设置->.NET CLR 版本选择无托管代码,确定。然后回到网站列表,重启下网站。
- 在浏览器上访问对应端口号,即可。
.net core webpai部署到windows service上
先添加nuget包,在nuget程序包管理控制器中执行代码
install-packAge Microsoft.Extensions.Hosting.WindowsServices
, 需要在项目代码中 Program.cs 文件的 CreateHostBuilder 方法中添加UseWindowsService()
在项目中重新发布,将整个发布文件拷贝至服务器
安装.net core runtime,下载地址: https://dotnet.microsoft.com/download (若已安装请忽略)
在C:\Windows\System32文件夹中找到cmd.exe,以管理员身份运行
执行命令
sc.exe create 服务名称 binPath= 项目地址
,(注意:此处binPath=后面需要加上一个空格,否则服务将创建失败)执行命令
sc.exe start 服务名称
启动服务,然后即可通过http://localhost:5000/
访问你的webpai
HangFire简单实践相关推荐
- Hangfire项目实践分享
项目中使用Hangfire已经快一年了,期间经历过很多次的试错及升级优化,才达到现在的稳定效果.趁最近不是太忙,自己在github上做了个案列,也是拿来跟大家分享下,案例是从项目里剥离出来的,有兴趣的 ...
- 贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码
1. 贪心算法概览 贪心算法是一种算法思想.希望能够满足限制的情况下将期望值最大化.比如:Huffman编码,Dijkstra单源最短路径问题,Kruskal最小生成树 等问题都希望满足限制的情况下用 ...
- Dubbo入门(2) - 简单实践
作者:不洗碗工作室 - Marklux 出处:Dubbo入门(2) - 简单实践 版权归作者所有,转载请注明出处 在了解什么是分布式框架之后,我们需要上手实践一下,来了解整个系统是如何运作起来的. 本 ...
- Redis的简单实践
Redis的简单实践 文章目录 Redis的简单实践 前言 Redis简介 Redis基本操作命令 Java使用Redis 使用IDEA搭建Redis项目 使用Jedis进行简单增删改查 使用Jedi ...
- 深度学习——RNN原理与TensorFlow2下的IMDB简单实践
在深度学习中,RNN是处理序列数据的有效方法之一,也是深度的一种很好的体现,本文将简单介绍RNN的工作方式,以及针对IMDB数据集的简单实践 RNN简介 RNN(Recurrent Neural Ne ...
- Spring 学习二-----AOP的原理与简单实践
一.Spring AOP的原理 AOP全名Aspect-Oriented Programming,中文直译为面向切面(方面)编程.何为切面,就比如说我们系统中的权限管理,日志,事务等我们都可以将其看 ...
- C++(11)--编程实践1-经典养成类游戏简单实践
经典养成类游戏简单实践-小公主养成记 <老九学堂C++课程>学习笔记.<老九学堂C++课程>详情请到B站搜索<老九零基础学编程C++入门> ------------ ...
- MachineLearning(8)-PCA,LDA基础+sklearn 简单实践
PCA,LDA基础+sklearn 简单实践 1.PCA+sklearn.decomposition.PCA 1.PCA理论基础 2.sklearn.decomposition.PCA简单实践 2.L ...
- MachineLearning(7)-决策树基础+sklearn.DecisionTreeClassifier简单实践
sklearn.DecisionTreeClassifier决策树简单使用 1.决策树算法基础 2.sklearn.DecisionTreeClassifier简单实践 2.1 决策树类 2.3 决策 ...
最新文章
- 表单之label标签
- 新网站如何在最短的时间内提升排名呢?
- Yale CAS + .net Client 实现 SSO(3)
- 第一次CM--CosH.2
- OpenCV中VideoWriter输出视频文件为空或6KB解决方法(java)
- ubuntu安装python3.8_Ubuntu 16.04 安装 python3.8
- 【报告分享】第七次全国人口普查主要数据情况报告.pdf(附下载链接)
- SQL server无法打开项 UNKNOWN\Components\929B2416EC4102B48A989956983ACF45\1F7B2B09C788E7644A0F08CA9C1D解决办法
- 《智慧书》格言大全(1-300)
- 软件库网站源码+多套模板 附手机版 附教程
- 开机bat脚本解决steam无法自动登陆
- VIX 指数构造详细证明过程
- qq街景输入 dir-item.js
- Cortex-M3和Cortex-M4 Fault异常基础知识
- 几种简单电路知识汇总
- rtl8188linux内核配置,编译基于rtl8188cu控制芯片的USB无线网卡在Linux下的配置
- 第二单元 用python学习微积分(十三)牛顿迭代法、中值定理和重要不等式
- mixly 添加micropython_Mixly For Mac
- oracle Swap_join_inputs简析
- AI人工智能对机器人有什么帮助?这些用处可大了
热门文章
- python怎样安装whl文件
- vr游戏模型测试软件,Steam VR性能测试工具介绍
- X2Go Client下载与使用(新手向)
- Flowable 6.6.0 BPMN用户指南 -10	流程实例迁移 - 10.1	简单示例
- 11.构造方法:什么是构造方法???使用构造方法要注意哪七点???
- torch.contiguous()函数用法
- 基于闪电连接过程优化算法的函数寻优算法
- lintcode ---最小差
- laravel 邮件发送
- 用计算机用语说唯美的话,说说唯美的句子