Closed tohkinzhu closed 4 years ago
应该是tag组件导致的 https://github.com/face-it/Hangfire.Tags 我研究下
嗯、我无脑把tags相关的数据暂时都先删了、删了2小时、好像没什么影响?
删除tag是没有影响的。因为tag只是根据你的jobname进行分类展示而已。你删除了 顶多没有分类。下次重新执行还是会给你新增tag的
我测试了 确实发现有部分的tag是过期日期没有赋值,我刚升级了下tag组件和hangfire.core的组件到最新版后,目前没有发现这个问题了。你可以升级下到最新版 Hangfire.HttpJob 3.1.8
好的 我试试 谢谢大佬
不过 这个tags可以禁用么?因为我看界面上也没有展示tags数据的地方。 @yuzd
升级到最新版本好像没有显示出这个。
这些job需要重新重建? 因为我发现还是有不少过期时间是null的数据在不断的生成,然后越来越大。。 能不能手动开启关闭这个tag功能?
好像你的 Hangfire.Tags.Mysql 没更新吧
你看下你的startup.cs里面配置的代码里面有没有usetag 有的话去掉的话 就关闭tag功能了
我用的sqlserver,你的意思是还需要单独安装升级Hangfire.Tags?startup里没有usetag. 但是tag还是不断增长。目前就这些引用,根据你GitHub主页来配置的
<PackageReference Include="Hangfire.AspNetCore" Version="1.7.11" />
<PackageReference Include="Hangfire.Core" Version="1.7.11" />
<PackageReference Include="Hangfire.Dashboard.BasicAuthorization" Version="1.0.2" />
<PackageReference Include="Hangfire.HttpJob" Version="3.2.0" />
<PackageReference Include="Hangfire.HttpJob.Agent" Version="1.1.4" />
<PackageReference Include="Hangfire.HttpJob.Client" Version="1.1.5" />
<PackageReference Include="Hangfire.SqlServer" Version="1.7.11" />
DELETE FROM HangFire.[Set] WHERE [Key] LIKE 'tags%'
Affected rows: 3161548 时间: 127.146s 每天得删一删数据
private void AddHangfireConfiguration(IGlobalConfiguration globalConfiguration)
{
globalConfiguration.UseSqlServerStorage(Configuration["HangfireSqlserverConnectionString"], new SqlServerStorageOptions
{
CommandBatchMaxTimeout = TimeSpan.FromMinutes(5),
SlidingInvisibilityTimeout = TimeSpan.FromMinutes(5),
QueuePollInterval = TimeSpan.Zero,
UseRecommendedIsolationLevel = true,
UsePageLocksOnDequeue = true,
DisableGlobalLocks = true
})
.UseConsole(new ConsoleOptions
{
ExpireIn = TimeSpan.FromMinutes(5)
})
.UseHangfireHttpJob(new HangfireHttpJobOptions
{
MailOption = new MailOption
{
Server = Configuration["HangfireMail:Server"],
Port = int.Parse(Configuration["HangfireMail:Port"]),
UseSsl = bool.Parse(Configuration["HangfireMail:UseSsl"]),
User = Configuration["HangfireMail:User"],
Password = Configuration["HangfireMail:Password"],
},
JobExpirationTimeoutDay = 1,
DefaultRecurringQueueName = Configuration["DefaultRecurringQueueName"],
RecurringJobTimeZone = TZConvert.GetTimeZoneInfo("Asia/Shanghai") //这里指定了添加周期性job时的时区
});
}
稍等 我查下
sqlserver上如果没有用tag 会记录tag的bug我修复了。请升级下
好的,我升级下看看。
UseConsole的这个数据是否可以关闭,我之前没有UseConsole好像也会记录数据,现在记录了5分钟,但是好像还是会一天后才过期。
老哥,问个问题,Set表数据过大如何处理,跑了几个月,居然有7000w的数据,控制台(key是console开头的)似乎可以配置自动删除,有些key是tags开头的数据,可以配置自动删除嘛?多谢