Hangfire控件在.net MVC中的使用1

首先是基础知识和开源的项目  直接看大佬的博客吧

https://www.cnblogs.com/ecin/p/hangfire-best-practice.html

Hanglefire自己的实践: (部分注释引自网络)

首先创建一个Startup 类 

using Microsoft.Owin;
using Owin;
using Hangfire;

[assembly: OwinStartup(typeof(HangfieDemo.Startup))]

namespace HangfieDemo
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            GlobalConfiguration.Configuration
                .UseSqlServerStorage("Data Source=localhost;Initial Catalog=xxx;User ID=sa;Password=123456;max pool size=1000");

            //启用Hangfire的仪表盘(可以看到任务的状态,进度等信息)
            app.UseHangfireDashboard();

            //启用HangfireServer这个中间件(它会自动释放)
            app.UseHangfireServer();

        }
    }
}

 

Controller中的代码:

        public ActionResult InsertDatak1()
        {
            //支持基于队列的任务处理:任务执行不是同步的,而是放到一个持久化队列中,以便马上把请求控制权返回给调用者。
            var jobId = BackgroundJob.Enqueue(() => writeIn());
            return Content("队列任务");
        }

        public ActionResult InsertDatak2()
        {
            //延迟任务执行:不是马上调用方法,而是设定一个未来时间点再来执行。
            BackgroundJob.Schedule(() => Delay(), TimeSpan.FromSeconds(10));
            return Content("延时任务");
        }

        public ActionResult InsertDatak3()
        {
            //循环任务执行:一行代码添加重复执行的任务,其内置了常见的时间循环模式,也可基于CRON表达式来设定复杂的模式。
            RecurringJob.AddOrUpdate(() => Recur(), Cron.Minutely); //注意最小单位是分钟
            return Content("每分钟执行任务");
        }

仪表盘中的内容的解释:

作业: 不知道是干嘛的  重试:不知道是干嘛的  周期性作业: 循环任务

Enqueued: 不知道

计划: 队列中要执行的函数  (不包括循环任务)

其它的不解释了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值