xxl-job-dotnet
xxl-job-dotnet 是一个 .NET 版本的 xxl-job,由于xxl-job是java编写的,官方只提供了java版本的执行器,.net项目无法使用xxl-job,因此xxl-job-net实现了.net版本的执行器,让.net项目也可以方便地使用xxl-job。
xxl-job 是一个分布式的任务调度平台,让你可以轻松地完成定时任务的开发,尤其是在分布式环境中,xxl-job解决了许多分布式环境下的难题。
xxl-job 架构图

在 .NET 中使用
首先,在项目中通过 Nuget 安装 XxlJob.AspNetCoreHost,如下
dotnet add package XxlJob.AspNetCoreHost
然后,在 Startup 中配置 xxl-job 服务,这里使用了配置文件方式加载xxl-job配置,这里要求 .net core 2.0+ 版本
public void ConfigureServices(IServiceCollection services)
{
services.AddXxlJob(xxlJob =>
{
xxlJob.Configure(Configuration.GetSection("XxlJob"));
});
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseXxlJob();
app.UseMvc();
}
上面代码中 Configuration.GetSection("XxlJob") 从配置文件中读取配置初始化 xxl-job, 配置服务端地址
{
"XxlJob": {
"AdminAddresses": [ "http://localhost:8080/xxl-job-admin" ]
}
}
编写任务处理代码
新建一个JobHandler继承自IJobHandler,在Execute中执行你的业务逻辑就行了。
public class TestHandler : IJobHandler
{
public override ReturnT Execute(JobExecutionContext context)
{
JobLogger.Log("任务开始执行");
JobLogger.Log("任务执行结束");
return ReturnT.CreateSucceededResult("测试job执行成功了!", "执行返回的内容");
}
}
项目地址
https://github.com/yuniansheng/xxl-job-dotnet