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 的使用方法,足足研究了一天多,各種報錯,最終選訂這個方案!