Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >每周开源项目分享-dotnet core 简易定时任务框架TimeJob

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

作者头像
李国宝
发布于 2020-01-02 09:05:33
发布于 2020-01-02 09:05:33
2K00
代码可运行
举报
运行总次数:0
代码可运行

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
代码运行次数:0
运行
AI代码解释
复制
public void ConfigureServices(IServiceCollection services)
{
     services.AddTimedJob();
}

Start.cs的Configure引入UseTimedJob中间件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseTimedJob();
}

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ASP.NET Core+Quartz.Net实现web定时任务
作为一枚后端程序狗,项目实践常遇到定时任务的工作,最容易想到的的思路就是利用Windows计划任务/wndows service程序/Crontab程序等主机方法在主机上部署定时任务程序/脚本。
有态度的马甲
2020/04/16
2.8K0
ASP.NET Core+Quartz.Net实现web定时任务
手把手教你用.NET Core写爬虫
自从上一个项目58HouseSearch从.NET迁移到.NET core之后,磕磕碰碰磨蹭了一个月才正式上线到新版本。
李国宝
2018/05/23
2.2K0
手把手教你用.NET Core写爬虫
一行代码完成定时任务调度,基于Quartz的UI可视化操作组件 GZY.Quartz.MUI
NET Core 基于Quartz的UI可视化操作组件 GZY.Quartz.MUI 简介
GuZhenYin
2022/05/11
1.3K0
一行代码完成定时任务调度,基于Quartz的UI可视化操作组件 GZY.Quartz.MUI
记录Quartz定时任务框架的学习过程(一)
拿火车票购票来说,当你下单后,后台就会插入一条待支付的task(job),一般是30分钟,超过30min后就会执行这个job,去判断你是否支付,未支付就会取消此次订单;当你支付完成之后,后台拿到支付回调后就会再插入一条待消费的task(job),Job触发日期为火车票上的出发日期,超过这个时间就会执行这个job,判断是否使用等。
青衫染红尘
2021/04/28
8190
.net core下定时任务的实现
Hangfire作为一款高人气且容易上手的分布式后台执行服务,支持多种数据库。在 .net core的环境中,由Core自带的DI管理着生命周期,免去了在NF4.X环境中配置always running的麻烦,真正做到开箱即用。
Bug生活2048
2018/08/31
1.4K0
.net core下定时任务的实现
Quartz定时任务框架使用教程详解
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,完全由Java开发,可以用来执行定时任务,类似于java.util.Timer。但是相较于Timer, Quartz增加了很多功能:
大忽悠爱学习
2021/12/07
2.3K0
Quartz定时任务框架使用教程详解
手把手教你写dotnet core(MVC)
上一篇手把手教你写dotnet core(入门篇)我们已经简单在dotnet core里面跑了个”hello world!”和累加程序.
李国宝
2020/01/02
1.1K0
手把手教你写dotnet core(MVC)
第三十九章:基于SpringBoot & Quartz完成定时任务分布式单节点持久化
定时任务在企业项目比较常用到,几乎所有的项目都会牵扯该功能模块,定时任务一般会处理指定时间点执行某一些业务逻辑、间隔时间执行某一些业务逻辑等。我们在之前有讲过SpringBoot是已经集成了定时任务的,详见:第二十六章:SpringBoot使用@Scheduled创建定时任务,那么我们本章将会采用外置的quartz定时任务框架来完成定时任务的分布式单节点持久化,我们为什么要持久化定时任务呢? 在一些项目中定时任务可能是必不可少的,由于某种特殊的原因定时任务可能丢失,如重启定时任务服务项目后,原内存中的定时任
恒宇少年
2018/06/27
2.4K0
.NET有哪些好用的定时任务调度框架
定时任务调度的相关业务在日常工作开发中是一个十分常见的需求,经常有小伙伴们在技术群提问:有什么好用的定时任务调度框架推荐的?今天大姚给大家分享5个.NET开源、简单、易用、免费的任务调度框架,帮助大家在做定时任务调度框架技术选型的时候有一个参考。
追逐时光者
2024/05/09
4200
.NET有哪些好用的定时任务调度框架
ASP.NET Core快速入门(第2章:配置管理)--学习笔记
课程链接:http://video.jessetalk.cn/course/explore
郑子铭
2021/01/13
7290
ASP.NET Core快速入门(第2章:配置管理)--学习笔记
在ASP.NET Core中创建基于Quartz.NET托管服务轻松实现作业调度
在这篇文章中,我将介绍如何使用ASP.NET Core托管服务运行Quartz.NET作业。这样的好处是我们可以在应用程序启动和停止时很方便的来控制我们的Job的运行状态。接下来我将演示如何创建一个简单的 IJob,一个自定义的 IJobFactory和一个在应用程序运行时就开始运行的QuartzHostedService。我还将介绍一些需要注意的问题,即在单例类中使用作用域服务。
依乐祝
2020/04/09
3.1K0
在ASP.NET Core中创建基于Quartz.NET托管服务轻松实现作业调度
《SpringBoot中@Scheduled和Quartz的区别是什么?分布式定时任务框架选型实战》​
新手常见困惑: 刚学SpringBoot时,我发现用@Scheduled写定时任务特别简单。但当我看到同事在项目里用Quartz时,代码突然变得复杂起来——为什么要用这些复杂的配置?难道注解不香吗?
摘星.
2025/05/20
780
Quartz定时任务框架:原理、应用与实战
今日推荐 《TCP/IP 协议职责和常见的三种模型介绍》这篇文章介绍了了如何使用Python构建一个智能食品包装设计的深度学习模型。从数据准备、模型构建、训练、评估到实际应用,每一步都有详细的代码说明。这样的技术不仅能够提高食品包装设计的效率和质量,还能根据市场需求实现个性化和智能化设计,为消费者带来更好的体验。
Front_Yue
2024/11/25
7840
Quartz定时任务框架:原理、应用与实战
3分钟掌握Quartz.net分布式定时任务的姿势
细心朋友稍一分析,就知道还有问题: 水平扩展后的WebApp的Quartz.net定时任务会多次触发, 因为webapp实例使用的是默认的RAMJobStore, 多实例在内存中都维护了Job和Trigger的副本.
有态度的马甲
2020/05/01
2.1K0
再见 Spring Task,这个定时任务框架真香!
于是,我简单写了一篇文章总结一下定时任务的一些概念以及一些常见的定时任务技术选型。希望能对小伙伴们有帮助!
Guide哥
2021/10/11
2.9K0
.Net5下定时任务Quartz的使用
关于Quartz的使用在《项目实战|C#Socket通讯方式改造(二)--利用Quartz实现定时任务处理》中已经写过一篇,不过那个是在.net framework中的使用,在.net5下使用起来还是有一些差别的,所以这篇主要就是介绍一下Quartz在.net5下的使用。
Vaccae
2021/01/06
1.7K0
.Net5下定时任务Quartz的使用
SpringBoot入门建站全系列(十五)内置定时任务及Quartz定时任务使用
2.ScheduledExecutorService,线程池版的TimerTask。
品茗IT
2019/08/19
1.3K0
C#/.NET/.NET Core定时任务调度的方法或者组件有哪些--Timer,FluentScheduler还是...
原文由Rector首发于 码友网 之 《C#/.NET/.NET Core应用程序编程中实现定时任务调度的方法或者组件有哪些,Timer,FluentScheduler,TaskScheduler,Gofer.NET,Coravel,Quartz.NET还是Hangfire》
Rector
2020/06/19
3.8K0
Hangfire Redis 实现秒级定时任务、使用 CQRS 实现动态执行代码
本文示例项目仓库:https://github.com/whuanle/HangfireDemo
痴者工良
2025/04/19
1280
Hangfire Redis 实现秒级定时任务、使用 CQRS 实现动态执行代码
dotNET Core:配置
在dotNET Core中默认情况下没有了之前版本的App.config和Web.Config文件,换成了新的json格式的配置文件。当然,如果想使用之前的方式也是可以的。下面说说在dotNET Core中各种使用配置的方法。
oec2003
2019/07/19
6460
dotNET Core:配置
推荐阅读
相关推荐
ASP.NET Core+Quartz.Net实现web定时任务
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验