• .Net5 定时任务调度框架 Hangfire


    值此元旦佳节,是个学习的好时间,啊哈哈哈,断断续续研究了一晚上,总结下吧 !

    官网地址:https://www.hangfire.io/

    1、NuGet安装包

    Hangfire.AspNetCore

    Hangfire.MemoryStorage

    Hangfire.SqlServer

      其中Hangfire.MemoryStorageHangfire.SqlServer使用一个就行,看是否有持久性的需求吧

    2、注册

    ConfigureServices

     1  //持久性
     2  services.AddHangfire(x => x.UseStorage(new SqlServerStorage(
     3  @"Data Source =8V74DZJEG5ECJEYMSSQLSERVER19;Initial Catalog = Y.Book; User ID = sa;Password =123456;",
     4  new SqlServerStorageOptions
     5  {
     6    //
     7    QueuePollInterval = TimeSpan.FromSeconds(15),//- 作业队列轮询间隔。默认值为15秒。
     8    JobExpirationCheckInterval = TimeSpan.FromHours(1),//- 作业到期检查间隔(管理过期记录)。默认值为1小时。
     9    CountersAggregateInterval = TimeSpan.FromMinutes(5),//- 聚合计数器的间隔。默认为5分钟。
    10    PrepareSchemaIfNecessary = true,//- 如果设置为true,则创建数据库表。默认是true。
    11    DashboardJobListLimit = 50000,//- 仪表板作业列表限制。默认值为50000。
    12    TransactionTimeout = TimeSpan.FromMinutes(1),//- 交易超时。默认为1分钟。
    13  }
    14  )));
    15 
    16  //Hangfire非持久性
    17  //services.AddHangfire(x => x.UseStorage(new MemoryStorage()));

    Configure

    1 //Hangfire图形可视化面板
    2 app.UseHangfireServer();
    3 app.UseHangfireDashboard();

     3、使用

    Configure中键入实现代码,其中ReportService为业务实现类,Daily为具体方法,然后设置每分钟执行一次,此处支持CRON表达式,如果之前接触过.net quartz那应该比较熟悉这个表达式了。

    1 RecurringJob.AddOrUpdate<Service.ReportService>("报表", e => e.Daily(), Cron.Minutely());

     运行界面如下图所示: 

    感谢:https://www.cnblogs.com/xishuai/p/asp-net-core-hangfire.html

         https://www.cnblogs.com/linezero/p/hangfire.html

              https://blog.csdn.net/weixin_43925876/article/details/89257885

  • 相关阅读:
    linux下拼接字符串的代码
    postgresql实现插入数据返回当前的主键ID
    记录一个linux下批处理的代码
    iptables
    mybatis获得执行insert的返回值
    git commit之后撤销
    仿照CIFAR-10数据集格式,制作自己的数据集
    C/C++ 在处理文件所在路径下创建子目录
    C/C++ 图像二进制存储与读取
    C/C++ 文件路径解析
  • 原文地址:https://www.cnblogs.com/PrintY/p/14224495.html
Copyright © 2020-2023  润新知