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的面板一摸一样了

  • 相关阅读:
    P4568 [JLOI2011]飞行路线 最短路+分层图
    虚树
    点分治
    P2157 [SDOI2009]学校食堂 状压DP
    P2767 树的数量 DP | 组合数学
    CF348D LGV引理
    LGV引理
    P3647 [APIO2014]连珠线 换根DP
    第3章 决策树
    USDT/BTC/ETC/HT的解释
  • 原文地址:https://www.cnblogs.com/fallTakeMan/p/11695073.html
Copyright © 2011-2022 走看看