在.netcore webapi项目中使用后台任务工具Hangfire

前端之家收集整理的这篇文章主要介绍了在.netcore webapi项目中使用后台任务工具Hangfire前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_404_4@

 

安装Hangfire

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

分享图片

 

使用MSsql数据库

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

CREATE DATABASE [HangfireTest]
GO
@H_404_4@

 

 设置appsettings.json

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

 

注册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();
}
@H_404_4@

 

  修改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();
}
@H_404_4@

 

启动项目

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

分享图片

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

分享图片

分享图片

@H_404_4@

猜你在找的MsSQL相关文章