shop_template_api/ARW.Tasks/TaskScheduler/Job_HttpRequest.cs
2023-06-02 21:15:33 +08:00

45 lines
1.5 KiB
C#

using Infrastructure;
using Infrastructure.Attribute;
using Quartz;
using Quartz.Impl;
using Quartz.Impl.Triggers;
using System;
using System.Threading.Tasks;
using ARW.Service.System.IService;
namespace ARW.Tasks.TaskScheduler
{
/// <summary>
/// 定时任务http请求
/// </summary>
[AppService(ServiceType = typeof(Job_HttpRequest), ServiceLifetime = LifeTime.Scoped)]
internal class Job_HttpRequest : JobBase, IJob
{
private readonly ISysTasksQzService tasksQzService;
private readonly NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
public Job_HttpRequest(ISysTasksQzService tasksQzService)
{
this.tasksQzService = tasksQzService;
}
public async Task Execute(IJobExecutionContext context)
{
await ExecuteJob(context, async () => await Run(context),"Success!");
}
public async Task Run(IJobExecutionContext context)
{
AbstractTrigger trigger = (context as JobExecutionContextImpl).Trigger as AbstractTrigger;
var info = await tasksQzService.GetByIdAsync(trigger.Name);
if (info != null)
{
var result = await HttpHelper.HttpGetAsync("http://" + info.ApiUrl);
logger.Info($"任务【{info.Name}】网络请求执行结果=" + result);
}
else
{
throw new CustomException("任务网络请求执行失败,任务不存在");
}
}
}
}