zoukankan      html  css  js  c++  java
  • 在.netcore webapi项目中使用后台任务工具Hangfire

     

    安装Hangfire

      在webapi项目中通过nuget安装Hangfire.Core,Hangfire.SqlServer,Hangfire.AspNetCore,截止到目前的最新版本是1.7.6。

    使用MSSQL数据库

      可以创建一个新的数据库,或者使用现有数据库。

    CREATE DATABASE [HangfireTest]
    GO

     设置appsettings.json

    {
      "ConnectionStrings": {
        "Hangfire": "Server=.;Database=mssqllocaldb;Integrated Security=SSPI;"
      },
      "Logging": {
        "LogLevel": {
          "Default": "Warning",
          "Hangfire": "Information"
        }
      },
      "AllowedHosts": "*"
    }

    注册hangfire服务

      在startup.cs引用HangfireHangfire.SqlServer,然后注册hangfire服务。

    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
        // 注册Hangfire服务
        services.AddHangfire(configuration => configuration
            .SetDataCompatibilityLevel(CompatibilityLevel.Version_170)
            .UseSimpleAssemblyNameTypeSerializer()
            .UseRecommendedSerializerSettings()
            .UseSqlServerStorage(Configuration.GetConnectionString("HangfireConnection"), new SqlServerStorageOptions
            {
                CommandBatchMaxTimeout = TimeSpan.FromMinutes(5),
                SlidingInvisibilityTimeout = TimeSpan.FromMinutes(5),
                QueuePollInterval = TimeSpan.Zero,
                UseRecommendedIsolationLevel = true,
                UsePageLocksOnDequeue = true,
                DisableGlobalLocks = true
            }));
    
        services.AddHangfireServer();
    
        services.AddMvc();
    }

      修改configure方法

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IBackgroundJobClient backgroundJobs, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
            app.UseHsts();
        }
    
        app.UseHangfireDashboard();
        backgroundJobs.Enqueue(() => Console.WriteLine("hello from hangfire"));
    
        app.UseHttpsRedirection();
        app.UseMvc();
    }

    启动项目

      可以看到数据库中自动创建了几张表。

      在项目地址后面加上/hangfire进入hangfire任务面板,这个面板可以说和CAP的面板一摸一样了

  • 相关阅读:
    双栈排序
    Koishi Loves Segments
    [USACO14FEB] Cow Decathlon 牛的十项全能
    [HNOI2016]网络
    koishi的数学题
    邦邦的大合唱站队
    #613(div2)
    Educational Codeforces Round 77
    #Hello 2020
    #601 (Div. 2)
  • 原文地址:https://www.cnblogs.com/fallTakeMan/p/11695073.html
Copyright © 2011-2022 走看看