.net core 2.2使用hangfire

MLXY 2019-12-04

需要用hangfire做一个每天执行的定时任务。

首先看了下hangfire文档,发现需要生成表,而数据库目前只支持SQLServer、redis、PostgreSQL、mongoDB、C1 CMS,而我目前使用的数据库是oracle,考虑到每天执行 数据量不大就使用redis了。

redis官网只支持linux,windons在GitHub下载。

然后找到了一篇文章https://www.cnblogs.com/yhnx/p/9186140.html,实测可行。

主要用到Hangfire.AspNetCoreHangfire.Redis.StackExchange这两个包

public class Startup
{
    

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddHangfire(configuration =>
        {
            configuration.UseRedisStorage("localhost");
        });
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        app.UseHangfireServer();
        app.UseHangfireDashboard();
        app.Map("/index", r =>
            {
                r.Run(context =>
                {
                    //任务每天执行一次
                    RecurringJob.AddOrUpdate(() => 执行方法, Cron.Daily());
                    return context.Response.WriteAsync("ok.");
                });
            });
    }
}