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

  • 相关阅读:
    iOS项目中常见的文件
    RN 导入原有Xcode项目中,引入Pod依赖出现的问题与解决
    Xcode中StoryBoard Reference 新特性的使用
    非等高cell实战(01)-- 实现微博页面
    iOS回顾笔记(09) -- Cell的添加、删除、更新、批量操作
    iOS回顾笔记(08) -- 自定义Cell的类型和创建步骤总结
    unittest中的测试固件
    unittest测试用例的执行顺序
    unittest各个组件之间的关系
    ubuntu16.04开机时的.local问题
  • 原文地址:https://www.cnblogs.com/fallTakeMan/p/11695073.html
Copyright © 2011-2022 走看看