@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引用Hangfire和Hangfire.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@
// 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的面板一摸一样了??