博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET Core 使用 Hangfire 定时任务
阅读量:6594 次
发布时间:2019-06-24

本文共 1873 字,大约阅读时间需要 6 分钟。

定时任务组件,除了 Hangfire 外,还有一个 Quarz.NET,不过 Hangfire .NET Core 支持的会更好些。

ASP.NET Core 使用 Hangfire 很简单,首先,Nuget 安装程序包:

> install-package Hangfire -pre

然后ConfigureServices添加配置代码:

public void ConfigureServices(IServiceCollection services){    services.AddHangfire(x => x.UseSqlServerStorage("
"));}

上面配置的是 Hangfire 任务配置数据库信息,默认只支持 SQLServer,如果不想使用数据库的话,可以 Nuget 安装程序包:

> install-package Hangfire.MemoryStorage -pre

修改ConfigureServices配置代码:

public void ConfigureServices(IServiceCollection services){    services.AddHangfire(x => x..UseStorage(new MemoryStorage()));}

Hangfire 扩展(比如 MySql):

然后Configure添加配置代码:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory){    app.UseHangfireServer();    app.UseHangfireDashboard();    RecurringJob.AddOrUpdate(() => Console.WriteLine("Recurring!"), Cron.Minutely());}

上面配置代码一分钟执行一次,Hangfire 支持 UI 界面展示,地址:

435188-20170425202305678-916877046.png

Hangfire 默认也支持执行异步方法,RecurringJob方法签名:

public static void AddOrUpdate
(Expression
> methodCall, string cronExpression, TimeZoneInfo timeZone = null, string queue = "default");public static void AddOrUpdate(Expression
> methodCall, string cronExpression, TimeZoneInfo timeZone = null, string queue = "default");public static void AddOrUpdate
(Expression
> methodCall, Func
cronExpression, TimeZoneInfo timeZone = null, string queue = "default");public static void AddOrUpdate(Expression
> methodCall, Func
cronExpression, TimeZoneInfo timeZone = null, string queue = "default");

异步和同步使用没有任何区别,示例代码:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory){    app.UseHangfireServer();    app.UseHangfireDashboard();    RecurringJob.AddOrUpdate(() => TestAsync(), Cron.Minutely());}public static async Task TestAsync(){    // to do...}

参考资料:

转载地址:http://cgdio.baihongyu.com/

你可能感兴趣的文章
Python教程
查看>>
1 dev repo organize
查看>>
ImmediateFunc.js
查看>>
jmeter参数化之 CSV data set config
查看>>
分组背包,每组最多选1个
查看>>
牛客国庆集训派对Day3 B Tree
查看>>
PHP 笔记——基础
查看>>
Java -- 深入浅出GC自动回收机制
查看>>
开发自己的脚本引擎(一)先吹吹水,再干事情。
查看>>
python中判断对象类型的函数——isinstance
查看>>
计数排序 + 线段树优化 --- Codeforces 558E : A Simple Task
查看>>
javascript版前端页面RSA非对称加密解密
查看>>
convex optimization(ebook+tutorial)best
查看>>
L1 minimization
查看>>
English Corner
查看>>
caffe扩展实验
查看>>
Properties工具类
查看>>
svn的使用
查看>>
小程序-3G菜单-
查看>>
使用fastcall 代替汇编hook thiscall
查看>>