完善任务调度
This commit is contained in:
@@ -45,7 +45,12 @@ namespace Yi.Framework.ApiMicroservice.Controllers
|
|||||||
return new FileStreamResult(stream, MimeType);
|
return new FileStreamResult(stream, MimeType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 该方法不对外暴露
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="type"></param>
|
||||||
|
/// <param name="file"></param>
|
||||||
|
/// <returns></returns>
|
||||||
private async Task<string> Upload(string type,IFormFile file)
|
private async Task<string> Upload(string type,IFormFile file)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -57,6 +62,7 @@ namespace Yi.Framework.ApiMicroservice.Controllers
|
|||||||
|
|
||||||
return filename;
|
return filename;
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<IActionResult>ExportFile()
|
public async Task<IActionResult>ExportFile()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Yi.Framework.Common;
|
using Yi.Framework.Common;
|
||||||
|
using Yi.Framework.Common.Const;
|
||||||
using Yi.Framework.Common.Helper;
|
using Yi.Framework.Common.Helper;
|
||||||
using Yi.Framework.Common.Models;
|
using Yi.Framework.Common.Models;
|
||||||
using Yi.Framework.Core;
|
using Yi.Framework.Core;
|
||||||
@@ -30,7 +31,16 @@ namespace Yi.Framework.ApiMicroservice.Controllers
|
|||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<Result> startJob()
|
public async Task<Result> startJob()
|
||||||
{
|
{
|
||||||
await _quartzInvoker.start("*/1 * * * * ? ", new Quartz.JobKey("test", "my"), "VisitJob");
|
//任务1
|
||||||
|
//await _quartzInvoker.start("*/1 * * * * ? ", new Quartz.JobKey("test", "my"), "VisitJob");
|
||||||
|
|
||||||
|
//任务2
|
||||||
|
Dictionary<string, object> data = new Dictionary<string, object>()
|
||||||
|
{
|
||||||
|
{JobConst.method,"get" },
|
||||||
|
{JobConst.url,"https://www.baidu.com" }
|
||||||
|
};
|
||||||
|
await _quartzInvoker.start("*/1 * * * * ? ", new Quartz.JobKey("test", "my"), "HttpJob",data: data);
|
||||||
return Result.Success();
|
return Result.Success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -146,11 +146,24 @@
|
|||||||
<param name="idsListDto"></param>
|
<param name="idsListDto"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:Yi.Framework.ApiMicroservice.Controllers.RoleController.GetTopMenusByRoleId(Yi.Framework.Model.Models.role)">
|
<member name="M:Yi.Framework.ApiMicroservice.Controllers.RoleController.GetTopMenusByRoleId(System.Int32)">
|
||||||
<summary>
|
<summary>
|
||||||
用于给角色设置菜单的时候,点击一个角色,显示这个角色拥有的并列的菜单
|
用于给角色设置菜单的时候,点击一个角色,显示这个角色拥有的并列的菜单
|
||||||
</summary>
|
</summary>
|
||||||
<param name="role"></param>
|
<param name="roleId"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Yi.Framework.ApiMicroservice.Controllers.SettingController.GetSetting">
|
||||||
|
<summary>
|
||||||
|
查
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Yi.Framework.ApiMicroservice.Controllers.SettingController.UpdateSetting">
|
||||||
|
<summary>
|
||||||
|
更
|
||||||
|
</summary>
|
||||||
|
<param name="_Setting"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:Yi.Framework.ApiMicroservice.Controllers.UserController.GetUser">
|
<member name="M:Yi.Framework.ApiMicroservice.Controllers.UserController.GetUser">
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
17
Yi.Framework/Yi.Framework.Common/Const/JobConst.cs
Normal file
17
Yi.Framework/Yi.Framework.Common/Const/JobConst.cs
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Yi.Framework.Common.Const
|
||||||
|
{
|
||||||
|
public class JobConst
|
||||||
|
{
|
||||||
|
|
||||||
|
public const string url = nameof(url);
|
||||||
|
|
||||||
|
public const string method = nameof(method);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -13,7 +13,8 @@ namespace Yi.Framework.Common.Helper
|
|||||||
{
|
{
|
||||||
Assembly assembly = Assembly.Load(assemblyFile);
|
Assembly assembly = Assembly.Load(assemblyFile);
|
||||||
return assembly.GetTypes().Where(m => m.IsClass
|
return assembly.GetTypes().Where(m => m.IsClass
|
||||||
&& m.Name==null?true:m.Name==className
|
&& className == null?true:m.Name==className
|
||||||
|
&& spaceName == null ? true :m.Namespace == spaceName
|
||||||
).ToList();
|
).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace Yi.Framework.Common.Models
|
namespace Yi.Framework.Common.Models
|
||||||
{
|
{
|
||||||
public class visitModel
|
public class JobModel
|
||||||
{
|
{
|
||||||
public static int visitNum { get; set; } = 0;
|
public static int visitNum { get; set; } = 0;
|
||||||
}
|
}
|
||||||
@@ -34,8 +34,13 @@ namespace Yi.Framework.Core
|
|||||||
/// <param name="second"></param>
|
/// <param name="second"></param>
|
||||||
/// <param name="data"></param>
|
/// <param name="data"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task start(string cron, JobKey jobKey, string jobClass, long second = 0)
|
public async Task start(string cron, JobKey jobKey, string jobClass, long second = 0, IDictionary<string, object> data = null)
|
||||||
{
|
{
|
||||||
|
if (data == null)
|
||||||
|
{
|
||||||
|
data = new Dictionary<string, object>();
|
||||||
|
}
|
||||||
|
|
||||||
var myClass = AssemblyHelper.GetClass("Yi.Framework.Job", jobClass).FirstOrDefault();
|
var myClass = AssemblyHelper.GetClass("Yi.Framework.Job", jobClass).FirstOrDefault();
|
||||||
|
|
||||||
_scheduler = await _schedulerFactory.GetScheduler();
|
_scheduler = await _schedulerFactory.GetScheduler();
|
||||||
@@ -49,6 +54,7 @@ namespace Yi.Framework.Core
|
|||||||
.Build();
|
.Build();
|
||||||
//创建任务
|
//创建任务
|
||||||
var jobDetail = JobBuilder.Create(myClass)
|
var jobDetail = JobBuilder.Create(myClass)
|
||||||
|
.UsingJobData(new JobDataMap(data))
|
||||||
.WithIdentity(jobKey.Name, jobKey.Group)
|
.WithIdentity(jobKey.Name, jobKey.Group)
|
||||||
.Build();
|
.Build();
|
||||||
//将触发器和任务器绑定到调度器中
|
//将触发器和任务器绑定到调度器中
|
||||||
|
|||||||
@@ -5,13 +5,14 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Yi.Framework.Common.Models;
|
||||||
|
|
||||||
namespace Yi.Framework.Job
|
namespace Yi.Framework.Job
|
||||||
{
|
{
|
||||||
public class HttpJob : IJob
|
public class HttpJob : IJob
|
||||||
{
|
{
|
||||||
private ILogger<VisitJob> _logger;
|
private ILogger<HttpJob> _logger;
|
||||||
public HttpJob(ILogger<VisitJob> logger)
|
public HttpJob(ILogger<HttpJob> logger)
|
||||||
{
|
{
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
}
|
}
|
||||||
@@ -20,7 +21,23 @@ namespace Yi.Framework.Job
|
|||||||
{
|
{
|
||||||
return Task.Run(() =>
|
return Task.Run(() =>
|
||||||
{
|
{
|
||||||
|
var jobData = context.JobDetail.JobDataMap;
|
||||||
|
string method= jobData[Common.Const.JobConst.method].ToString();
|
||||||
|
string url = jobData[Common.Const.JobConst.url].ToString();
|
||||||
|
string data="异常!";
|
||||||
|
switch (method)
|
||||||
|
{
|
||||||
|
case "post":
|
||||||
|
data = Common.Helper.HttpHelper.HttpPost(url);
|
||||||
|
break;
|
||||||
|
case "get":
|
||||||
|
data = Common.Helper.HttpHelper.HttpGet(url);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
_logger.LogWarning("定时任务开始调度:" + nameof(HttpJob) + ":" + DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss") + $":访问地址为:{url},结果为:{data}");
|
||||||
|
Console.WriteLine($"结果:{data}");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,13 +31,11 @@ namespace Yi.Framework.Job
|
|||||||
{
|
{
|
||||||
return Task.Run(() =>
|
return Task.Run(() =>
|
||||||
{
|
{
|
||||||
|
_DBWrite.Set<visit>().Add(new visit() { num = JobModel.visitNum, time = DateTime.Now });
|
||||||
_DBWrite.Set<visit>().Add(new visit() { num = visitModel.visitNum, time = DateTime.Now });
|
|
||||||
_DBWrite.SaveChanges();
|
_DBWrite.SaveChanges();
|
||||||
_logger.LogWarning("定时任务开始调度:" + nameof(VisitJob) + ":" + DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss") + $":访问总数为:{visitModel.visitNum}");
|
_logger.LogWarning("定时任务开始调度:" + nameof(VisitJob) + ":" + DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss") + $":访问总数为:{JobModel.visitNum}");
|
||||||
visitModel.visitNum = 0;
|
JobModel.visitNum = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user