首页 技术 正文
技术 2022年11月6日
0 收藏 654 点赞 1,066 浏览 1421 个字

最近在写一个Asp.net core 的项目,其中有用到定时任务,一开始准备要用Quartz.net。毕竟在Java中和.net framework中都表现突出。

但是看了一下Quartz.net 关于Asp.net core 的文档之后决定换一个定时任务框架,于是我选择了HangFire。

开发工具:visual studio code

环境:.net core 2.0

①创建一个asp.net core mvc项目:在vs code打开一个空文件夹,然后用Ctrl+、(或点击上方的 查看集成终端)打开 终端 输入:dotnet new mvc

②安装HangFire 在 终端 输入:dotnet add package HangFire

③打开Startup文件,导入依赖项:using HangFire;

注意:

这个定时框架需要使用数据库,如果你用的是mssql 就不要单独引数据库的包了,否则需要单独添加,比如dotnet add package Hangfire.Pro.Redis;

④在ConfigureServices中添加数据库引擎

publicvoidConfigureServices(IServiceCollection services)        {            services.AddHangfire(r =>r.UseSqlServerStorage(@"Server=(localdb)\MSSQLLocalDB; Database=HangFire; Trusted\_Connection=True;"));            services.AddMvc();        }

⑤然后在Configure启动服务 启动框架 添加定时任务

即添加

app.UseHangfireServer();

app.UseHangfireDashboard();

RecurringJob.AddOrUpdate();

publicvoidConfigure(IApplicationBuilder app, IHostingEnvironment env)        {            if (env.IsDevelopment())            {                app.UseDeveloperExceptionPage();            }            else            {                app.UseExceptionHandler("/Home/Error");            }            app.UseHangfireServer();            app.UseHangfireDashboard();            //定时任务            RecurringJob.AddOrUpdate(() =>newCommon.Weather(), Cron.Daily);            app.UseStaticFiles();            app.UseMvc(routes =>;            {                routes.MapRoute(                    name: "default",                    template: "{controller=Home}/{action=Index}/{id?}");            });        }
注释:

Common是我的一个工具类,Weather是我需要定时执行的方法;

Cron.Daily表是每天执行一次;

另外定时任务执行方式有很多种,添加、延迟、重复等等 Cron表达式也多种多样

任务执行方式: http://docs.hangfire.io/en/latest/quick-start.html

Cron表达式: https://en.wikipedia.org/wiki/Cron

如果用vs code的话在调试之前千万不要执行 dotnet restore或dotnet build

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,085
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,560
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,409
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,182
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,819
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,902