abp 官方使用的hangfire 默认使用的是sqlserver的存储

需要引入支持mysql的类库

我这边使用的是Hangfire.MySql.Core

直接用nuget安装即可

首先按照官方文档要求,改几个地方

分别是 Startup 文件下

services.AddHangfire(config =>
{
config.UseStorage(new MySqlStorage(_appConfiguration.GetConnectionString("Default")));//注意,这里使用的是mysql
});

 

启用控制台

app.UseHangfireDashboard("/hangfire", new DashboardOptions
{
Authorization = new[] { new AbpHangfireAuthorizationFilter(AppPermissions.Pages_Administration_HangfireDashboard) }
});

 

然后是配置使用Hangfire 在WebCoreModule中启用这句

Configuration.BackgroundJobs.UseHangfire();

 

最重要的,,使用hangfire.mysql.core 这个类库,连接数据库的字符串要加上 Allow User Variables=true;

完整的如下:

server=192.168.1.108;User ID=root;Password=xaxasa;database=db;charset=utf8mb4;Allow User Variables=true;

 

由于官方没有介绍mysql 的使用方法,足足研究了一天多,各种报错,最终选订这个方案!