完成自动注册的功能

pull/1/head
假正经哥哥 7 years ago
parent 537c909dfc
commit eb762784e7
  1. 20
      samples/ASPNetCoreExecutor/DemoJobHandler.cs
  2. 5
      samples/ASPNetCoreExecutor/Program.cs
  3. 8
      samples/ASPNetCoreExecutor/Startup.cs
  4. 9
      samples/ASPNetCoreExecutor/appsettings.Development.json
  5. 4
      samples/ASPNetCoreExecutor/appsettings.json
  6. 21
      src/DotXxlJob.Core/DefaultHandlers/HttpJobHandler.cs
  7. 44
      src/DotXxlJob.Core/DefaultHandlers/SimpleHttpJobHandler.cs
  8. 7
      src/DotXxlJob.Core/Internal/IPUtility.cs
  9. 7
      src/DotXxlJob.Core/Internal/Preconditions.cs

@ -0,0 +1,20 @@
using System.Threading.Tasks;
using DotXxlJob.Core;
using DotXxlJob.Core.Model;
namespace ASPNetCoreExecutor
{
/// <summary>
/// 示例Job,只是写个日志
/// </summary>
[JobHandler("demoJobHandler")]
public class DemoJobHandler:AbstractJobHandler
{
public override Task<ReturnT> Execute(JobExecuteContext context)
{
context.JobLogger.Log("receive demo job handler,parameter:{0}",context.JobParameter);
return Task.FromResult(ReturnT.SUCCESS);
}
}
}

@ -19,6 +19,11 @@ namespace ASPNetCoreExecutor
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureLogging((ctx, builder) =>
{
builder.AddConfiguration(ctx.Configuration);
builder.AddConsole();
})
.UseStartup<Startup>();
}
}

@ -23,13 +23,15 @@ namespace ASPNetCoreExecutor
services.AddXxlJobExecutor(Configuration);
services.AddDefaultXxlJobHandlers();// add httpHandler;
services.AddSingleton<IJobHandler, DemoJobHandler>(); // 添加自定义的jobHandler
services.AddAutoRegistry(); // 自动注册
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app,ILoggingBuilder loggerBuilder, IHostingEnvironment env)
public void Configure(IApplicationBuilder app,IHostingEnvironment env)
{
loggerBuilder.AddConsole();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();

@ -1,9 +0,0 @@
{
"Logging": {
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}

@ -6,8 +6,10 @@
},
"xxlJob": {
"adminAddresses":"http://127.0.0.1:8080",
"appName": "ASPNetCoreExecutor",
"appName": "xxl-job-executor-dotnet",
"specialBindAddress": "127.0.0.1",
"port": 5000,
"autoRegistry":true,
"accessToken": "",
"logRetentionDays": 30
}

@ -1,21 +0,0 @@
using System.Threading.Tasks;
using DotXxlJob.Core.Model;
namespace DotXxlJob.Core.DefaultHandlers
{
[JobHandler("httpJobHandler")]
public class HttpJobHandler:AbsJobHandler
{
public async override Task<ReturnT> Execute(JobExecuteContext context)
{
if (string.IsNullOrEmpty(context.JobParameter))
{
return ReturnT.Failed("url is empty");
}
//判断是否为单URL
context.JobLogger.Log("Get Request Data:{0}",context.JobParameter);
return ReturnT.SUCCESS;
}
}
}

@ -0,0 +1,44 @@
using System.Net.Http;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using DotXxlJob.Core.Model;
namespace DotXxlJob.Core.DefaultHandlers
{
[JobHandler("simpleHttpJobHandler")]
public class SimpleHttpJobHandler:AbsJobHandler
{
private readonly IHttpClientFactory _httpClientFactory;
private static readonly Regex UrlPattern =
new Regex(@"(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]");
public SimpleHttpJobHandler(IHttpClientFactory httpClientFactory)
{
this._httpClientFactory = httpClientFactory;
}
public async override Task<ReturnT> Execute(JobExecuteContext context)
{
if (string.IsNullOrEmpty(context.JobParameter))
{
return ReturnT.Failed("url is empty");
}
string url = context.JobParameter;
if (!UrlPattern.IsMatch(url))
{
return ReturnT.Failed("url format is not valid");
}
using (var client = _httpClientFactory.CreateClient(Constants.DefaultHttpClientName))
{
var responseMessage = await client.GetAsync(url);
}
//判断是否为单URL
context.JobLogger.Log("Get Request Data:{0}",context.JobParameter);
return ReturnT.SUCCESS;
}
}
}

@ -0,0 +1,7 @@
namespace DotXxlJob.Core
{
public class IPUtility
{
}
}

@ -0,0 +1,7 @@
namespace DotXxlJob.Core
{
public class Preconditions
{
}
}
Loading…
Cancel
Save