job异常处理

This commit is contained in:
陈淳
2022-11-29 12:49:36 +08:00
parent d97ef84b7e
commit e501b894c3
3 changed files with 60 additions and 0 deletions

View File

@@ -602,6 +602,12 @@
</summary>
<returns></returns>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.TestController.ErrorJob">
<summary>
job异常处理
</summary>
<returns></returns>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.TestController.TreeTest">
<summary>
树形结构构建测试

View File

@@ -1,4 +1,5 @@
using Hangfire;
using Hangfire.MemoryStorage.Database;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.SignalR;
@@ -221,6 +222,17 @@ namespace Yi.Framework.ApiMicroservice.Controllers
return Result.Success("http://localhost:19001/hangfire");
}
/// <summary>
/// job异常处理
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<Result> ErrorJob()
{
await _quartzInvoker.StartAsync("*/5 * * * * ?", "ErrorJob");
return Result.Success();
}
/// <summary>
/// 树形结构构建测试
/// </summary>

View File

@@ -0,0 +1,42 @@
using Microsoft.Extensions.Logging;
using Quartz;
using Quartz.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Yi.Framework.Common.Models;
namespace Yi.Framework.Job
{
public class ErrorJob : IJob
{
private ILogger<ErrorJob> _logger;
public ErrorJob(ILogger<ErrorJob> logger)
{
_logger = logger;
}
public Task Execute(IJobExecutionContext context)
{
try
{
Random random = new Random();
var p = random.Next(0, 2);
//这里可能会抛出异常
var o = 1 / p;
}
catch (Exception ex)
{
JobExecutionException exception = new JobExecutionException(ex);
exception.Source = context.JobDetail.Key.Name;
exception.UnscheduleFiringTrigger = true;
_logger.LogError(exception, $"{exception.Source}错误");
throw exception;
}
return Task.CompletedTask;
}
}
}