很多时候我们可能需要周期重复做一些事情, 定时任务框架应运而生.
在Linux下面crontab集合shell脚本做一些定时重复操作是常见通用的.
但是有时候我们可能需要在程序中做类似的事情,如:
Java这边,一般都使用Quartz框架简单实现定时任务.
.NET这边,也有Quartz.net,不过ASP.NET时代受制于IIS,经常会有同行小伙伴说抱怨定时任务偶尔突然就不跑.
参考文章:
到了dotnet core时代,自宿主不依赖IIS了,也有自己独立的主线程之后,我们做定时任务就很方便了.
开源dalaoAmamiya Yuuko 就自己撸了一个简易定时任务框架出来啦.
GitHub开源地址:https://github.com/PomeloFoundation/dotNETCore-Extensions
Nuget地址:Pomelo.AspNetCore.TimedJob
代码如下:
public void ConfigureServices(IServiceCollection services)
{
services.AddTimedJob();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseTimedJob();
}
新建一个XXXJob.cs类,继承于Job
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扩展包系列
嗯?完了?…
对啊,结束了.
真结束了….
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有