HangFire是一个免费开源的任务组件,支持队列任务、延时任务和循环任务三种模式执行。HangFire的所有任务可以保存于内存和数据库两种仓储。
任务模式:
1、队列任务 BackgroundJob.Enqueue(() => Console.WriteLine("Holle!"));
2、延时任务 BackgroundJob.Schedule(() => Console.WriteLine("Holle!"), TimeSpan.FromDays(7));
3、循环任务 RecurringJob.AddOrUpdate(() => Console.WriteLine("Holle!"), Cron.Daily);,循环模式也可以自定义复杂模式。
注:以上任务组件调用方法建议都创建单独的方法,如BackgroundJob.Enqueue(() =>Test());
public void Test()
{
//方法体代码
}
这样调用单独写方法与直接写方法体区别是如DateTime.Now等前者是每次执行的时间后者则是第一次执行的时间。
安装步骤:
HangFire可以通过NuGet直接搜索并安装。
任务存储于内存可以用Hangfire.MemoryStorage和redis中的Hangfire Redis Storage。
数据库中直接安装HangFire即可。
注:Json组件版本冲突报错。