Hangfire在.net core WebAPI中的简单应用

  • 安装Hangfire

    1. 在visual studio中 工具 >> Nuget包管理器 >> 程序包管理控制器 打开nuget控制台

    2. 输入 Insatll-Package Hangfire 安装HangFire,等待安装完成

      结果如下图:

  • 注册及配置Hangfire(使用Sql Server)

    1. appsettings.json 文件中添加数据库连接字符串配置

      (```)

      "ConnectionStrings": {"defaultDB": "Server=.;Database=ApiDataBase;uid=sa;pwd=svse;MultipleActiveResultSets=true"}
      

      (```)

    2. 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管理视图

    1. 运行项目,然后在项目地址后面加上 hangfire 即可查看Hangfire管理视图

      例:项目地址是: https://localhost:44323/weatherforecast ,输入 https://localhost:44323/hangfire即可访问

  • 调度代码应用

    1. 支持基于队列的任务处理:任务执行不是同步的,而是放到一个持久化队列中,以便马上把请求控制权返回给调用者。

      var jobId = BackgroundJob.Enqueue(() => function());

    2. 延迟执行任务,不是马上调用方法,而是设定一个未来的时间来执行,延迟作业仅执行一次

      var jobId = BackgroundJob .Schedule(()=> function(),TimeSpan .FromDays(1));//这里设置的是一天后执行

    3. 循环执行,一行代码添加重复执行的任务,其内置了常见的时间循环模式,也可基于CRON表达式来设定复杂的模式。

      RecurringJob.AddOrUpdate(() => function(), Cron.Minutely);//最小单位是分钟,即最低仅可按照一分钟一次执行

    4. 延续性任务执行,可以在第一个任务执行完之后紧接着再次执行另外的任务,指定在某一个任务完成后立即执行你想执行的任务

      BackgroundJob.ContinueWith(jobId, () => function());

  • 部署

    数据库创建

    按照appsettings.json文件中配置的数据库名称建立数据库

    打开sqlserver >> 点击新建查询,然后执行下面代码即可(数据库名需和appsettings.json配置文件中的一致)

    create database 数据库名 go

    .net core webapi部署到iis

    1. 安装.net core runtime,下载地址: https://dotnet.microsoft.com/download
    2. 点击WebApi项目右键->发布,选择IIS为发布目标,点击发布;
    3. 选择文件系统,指定发布路径 ,选择release配置,框架对应项目使用框架,然后保存确定
    4. 打开IIS服务器,添加网站,物理路径选择发布的路径,配置端口号为你想要的端口,确定。
    5. 打开应用程序池,选择对应的同名应用程序池->右键->基本设置->.NET CLR 版本选择无托管代码,确定。然后回到网站列表,重启下网站。
    6. 在浏览器上访问对应端口号,即可。

    .net core webpai部署到windows service上

    1. 先添加nuget包,在nuget程序包管理控制器中执行代码install-packAge Microsoft.Extensions.Hosting.WindowsServices , 需要在项目代码中 Program.cs 文件的 CreateHostBuilder 方法中添加 UseWindowsService()

    2. 在项目中重新发布,将整个发布文件拷贝至服务器

    3. 安装.net core runtime,下载地址: https://dotnet.microsoft.com/download (若已安装请忽略)

    4. 在C:\Windows\System32文件夹中找到cmd.exe,以管理员身份运行

    5. 执行命令sc.exe create 服务名称 binPath= 项目地址,(注意:此处binPath=后面需要加上一个空格,否则服务将创建失败)

    6. 执行命令sc.exe start 服务名称 启动服务,然后即可通过http://localhost:5000/访问你的webpai

HangFire简单实践相关推荐

  1. Hangfire项目实践分享

    项目中使用Hangfire已经快一年了,期间经历过很多次的试错及升级优化,才达到现在的稳定效果.趁最近不是太忙,自己在github上做了个案列,也是拿来跟大家分享下,案例是从项目里剥离出来的,有兴趣的 ...

  2. 贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码

    1. 贪心算法概览 贪心算法是一种算法思想.希望能够满足限制的情况下将期望值最大化.比如:Huffman编码,Dijkstra单源最短路径问题,Kruskal最小生成树 等问题都希望满足限制的情况下用 ...

  3. Dubbo入门(2) - 简单实践

    作者:不洗碗工作室 - Marklux 出处:Dubbo入门(2) - 简单实践 版权归作者所有,转载请注明出处 在了解什么是分布式框架之后,我们需要上手实践一下,来了解整个系统是如何运作起来的. 本 ...

  4. Redis的简单实践

    Redis的简单实践 文章目录 Redis的简单实践 前言 Redis简介 Redis基本操作命令 Java使用Redis 使用IDEA搭建Redis项目 使用Jedis进行简单增删改查 使用Jedi ...

  5. 深度学习——RNN原理与TensorFlow2下的IMDB简单实践

    在深度学习中,RNN是处理序列数据的有效方法之一,也是深度的一种很好的体现,本文将简单介绍RNN的工作方式,以及针对IMDB数据集的简单实践 RNN简介 RNN(Recurrent Neural Ne ...

  6. Spring 学习二-----AOP的原理与简单实践

    一.Spring  AOP的原理 AOP全名Aspect-Oriented Programming,中文直译为面向切面(方面)编程.何为切面,就比如说我们系统中的权限管理,日志,事务等我们都可以将其看 ...

  7. C++(11)--编程实践1-经典养成类游戏简单实践

    经典养成类游戏简单实践-小公主养成记 <老九学堂C++课程>学习笔记.<老九学堂C++课程>详情请到B站搜索<老九零基础学编程C++入门> ------------ ...

  8. MachineLearning(8)-PCA,LDA基础+sklearn 简单实践

    PCA,LDA基础+sklearn 简单实践 1.PCA+sklearn.decomposition.PCA 1.PCA理论基础 2.sklearn.decomposition.PCA简单实践 2.L ...

  9. MachineLearning(7)-决策树基础+sklearn.DecisionTreeClassifier简单实践

    sklearn.DecisionTreeClassifier决策树简单使用 1.决策树算法基础 2.sklearn.DecisionTreeClassifier简单实践 2.1 决策树类 2.3 决策 ...

最新文章

  1. 表单之label标签
  2. 新网站如何在最短的时间内提升排名呢?
  3. Yale CAS + .net Client 实现 SSO(3)
  4. 第一次CM--CosH.2
  5. OpenCV中VideoWriter输出视频文件为空或6KB解决方法(java)
  6. ubuntu安装python3.8_Ubuntu 16.04 安装 python3.8
  7. 【报告分享】第七次全国人口普查主要数据情况报告.pdf(附下载链接)
  8. SQL server无法打开项 UNKNOWN\Components\929B2416EC4102B48A989956983ACF45\1F7B2B09C788E7644A0F08CA9C1D解决办法
  9. 《智慧书》格言大全(1-300)
  10. 软件库网站源码+多套模板 附手机版 附教程
  11. 开机bat脚本解决steam无法自动登陆
  12. VIX 指数构造详细证明过程
  13. qq街景输入 dir-item.js
  14. Cortex-M3和Cortex-M4 Fault异常基础知识
  15. 几种简单电路知识汇总
  16. rtl8188linux内核配置,编译基于rtl8188cu控制芯片的USB无线网卡在Linux下的配置
  17. 第二单元 用python学习微积分(十三)牛顿迭代法、中值定理和重要不等式
  18. mixly 添加micropython_Mixly For Mac
  19. oracle Swap_join_inputs简析
  20. AI人工智能对机器人有什么帮助?这些用处可大了

热门文章

  1. python怎样安装whl文件
  2. vr游戏模型测试软件,Steam VR性能测试工具介绍
  3. X2Go Client下载与使用(新手向)
  4. Flowable 6.6.0 BPMN用户指南 -10 流程实例迁移 - 10.1 简单示例
  5. 11.构造方法:什么是构造方法???使用构造方法要注意哪七点???
  6. torch.contiguous()函数用法
  7. 基于闪电连接过程优化算法的函数寻优算法
  8. lintcode ---最小差
  9. laravel 邮件发送
  10. 用计算机用语说唯美的话,说说唯美的句子