第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

跨語(yǔ)言調(diào)用Hangfire定時(shí)作業(yè)服務(wù)

標(biāo)簽:
C#

跨语言调用Hangfire定时作业服务

背景

Hangfire允许您以非常简单但可靠的方式执行后台定时任务的工作。内置对任务的可视化操作。非常方便。

但令人遗憾的是普遍都是业务代码和hagnfire服务本身聚合在一个程序中运行,极大的限制了hangfire的扩展和跨语言调用。

所以萌生了开发一个支持restful api调用的sdk库

本来打算简单的建立webapi,内部再调用hangfire,但是一想实在不优雅,组件就应该尽量聚合在一个库的中,偶然找到了一个已经开发了支持restfull api的hangfire组件,github地址=>Hangfire.Job

看了下源码,调用了hangfire公开的接口获取请求路由信息,然后去hangfire去执行。只提供了单次执行和循环执行,其他场景可以参考代码扩展。

但是调用方要通过http请求,不是很方便,所以扩展了一个Chaunce.Hangfire.Client 的C# sdk来调用hangfire。此库也已上传nuget

使用方式

第一步:

部署hangfire服务

  拉取

之后在数据库建立与ppsettings.json中数据库名称一致的数据库。

第二步:

使用hangfire客户端

建立asp.netcore 程序,并修改appsettings.json文件如下:

 "HangfireClientOptions": {
    "RecurringJobUrl": "hangfire/httpjob?op=recurringjob",
    "BackgroundJobUrl": "",
    "BaseUrl": "http://localhost:5000",
    "UserName": "admin",
    "PassWord":"test"
  }

修改Startup文件将Chaunce.Hangfire.Client注册到asp.netcore组件中,

public void ConfigureServices(IServiceCollection services)
        {            var option = Configuration.GetSection(nameof(HangfireClientOptions)).Get<HangfireClientOptions>();

            services.AddHangfireClient(option);
        }

这里以Controller中使用为例:将IHangfireClient 注入构造函数进行使用

[Route("api/[controller]")]
    [ApiController]    public class ValuesController : ControllerBase
    {        private readonly IHangfireClient _hangfireClient;        public ValuesController(IHangfireClient hangfireClient)
        {
            _hangfireClient = hangfireClient;
        }        // GET api/values        [HttpGet]        public async Task<ActionResult<IEnumerable<string>>> Get()
        {            var result = await _hangfireClient.SendTimerJobAsync(new HttpJobItem
            {
                Corn = Cron.MinuteInterval(10),
                Url = "https://www.cnblogs.com/xiaoliangge/",
                JobName = "I'm external Job by restful Api",
            }, TaskType.Recurringjob);            return new string[] { "Do i succeeded?", $"{result}" };
        }
    }

效果图

https://img1.sycdn.imooc.com//5b95d9fc0001167d00120019.jpg

 Github地址:https://github.com/liuyl1992/Chaunce.Hangfire

原文出处:https://www.cnblogs.com/xiaoliangge/p/9616249.html

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消