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

  • 相关阅读:
    img标签为什么可以设置宽高
    高度和宽度的操作
    自增自减运算符
    读取标签内容:innerHTML和innerText的区别 text()和html()的区别
    js中的常用方法
    js中style,currentStyle和getComputedStyle的区别以及获取css操作方法(考虑兼容性和局限性)
    IE盒模型与W3C盒模型区别
    css四种定位方式及其区别
    css隐藏元素的方法何区别
    Hibernate之HQL
  • 原文地址:https://www.cnblogs.com/fallTakeMan/p/11695073.html
Copyright © 2011-2022 走看看