前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >每周开源项目分享-dotnet core 简易定时任务框架TimeJob

每周开源项目分享-dotnet core 简易定时任务框架TimeJob

作者头像
李国宝
发布2020-01-02 17:05:33
1.9K0
发布2020-01-02 17:05:33
举报

dotnet core 简易定时任务框架TimeJob

很多时候我们可能需要周期重复做一些事情, 定时任务框架应运而生.

在Linux下面crontab集合shell脚本做一些定时重复操作是常见通用的.

但是有时候我们可能需要在程序中做类似的事情,如:

  1. 定时邮件推送
  2. 定时监控日报生成
  3. XXX…

Java这边,一般都使用Quartz框架简单实现定时任务.

.NET这边,也有Quartz.net,不过ASP.NET时代受制于IIS,经常会有同行小伙伴说抱怨定时任务偶尔突然就不跑.

参考文章:

  1. 网站发布后在IIS上定时执行任务
  2. Quartz定时任务和IIS程序池闲置超时时间冲突解决方案

到了dotnet core时代,自宿主不依赖IIS了,也有自己独立的主线程之后,我们做定时任务就很方便了.

开源dalaoAmamiya Yuuko 就自己撸了一个简易定时任务框架出来啦.

GitHub开源地址:https://github.com/PomeloFoundation/dotNETCore-Extensions

Nuget地址:Pomelo.AspNetCore.TimedJob

TimeJob 使用教程

Start.cs的ConfigureServices注入AddTimedJob服务

代码如下:

代码语言:javascript
复制
public void ConfigureServices(IServiceCollection services)
{
     services.AddTimedJob();
}

Start.cs的Configure引入UseTimedJob中间件

代码语言:javascript
复制
 public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseTimedJob();
}

新建一个XXXJob.cs类,继承于Job

代码语言:javascript
复制

using Microsoft.Extensions.Options;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using Pomelo.AspNetCore.TimedJob;

namespace Sample.Jobs
{
    public class TestJob : Job
    {
        public TestJob()
        {

        }

        [Invoke(Begin = "2018-07-27 00:00", Interval = 1000 * 600, SkipWhileExecuting = true)]
        public void Run()
        {
            Console.WriteLine(DateTime.Now.ToString()+",TestJob run...");
        }

    }

}

大功告成!

如果需要把定时任务相关的内容固化到数据库,可以参考:Timed Job - Pomelo扩展包系列

嗯?完了?…

对啊,结束了.

真结束了….

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-07-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • dotnet core 简易定时任务框架TimeJob
    • TimeJob 使用教程
      • Start.cs的ConfigureServices注入AddTimedJob服务
      • Start.cs的Configure引入UseTimedJob中间件
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档