Merge branch 'main' of https://github.com/ccnetcore/Yi into main

This commit is contained in:
lzw
2021-11-03 18:26:16 +08:00
9 changed files with 83 additions and 15 deletions

View File

@@ -45,7 +45,12 @@ namespace Yi.Framework.ApiMicroservice.Controllers
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)
{
@@ -57,6 +62,7 @@ namespace Yi.Framework.ApiMicroservice.Controllers
return filename;
}
[HttpGet]
public async Task<IActionResult>ExportFile()
{

View File

@@ -6,6 +6,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Yi.Framework.Common;
using Yi.Framework.Common.Const;
using Yi.Framework.Common.Helper;
using Yi.Framework.Common.Models;
using Yi.Framework.Core;
@@ -30,7 +31,16 @@ namespace Yi.Framework.ApiMicroservice.Controllers
[HttpPost]
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();
}

View File

@@ -146,11 +146,24 @@
<param name="idsListDto"></param>
<returns></returns>
</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>
<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>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.UserController.GetUser">

View 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);
}
}

View File

@@ -13,7 +13,8 @@ namespace Yi.Framework.Common.Helper
{
Assembly assembly = Assembly.Load(assemblyFile);
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();
}

View File

@@ -6,7 +6,7 @@ using System.Threading.Tasks;
namespace Yi.Framework.Common.Models
{
public class visitModel
public class JobModel
{
public static int visitNum { get; set; } = 0;
}

View File

@@ -34,8 +34,13 @@ namespace Yi.Framework.Core
/// <param name="second"></param>
/// <param name="data"></param>
/// <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();
_scheduler = await _schedulerFactory.GetScheduler();
@@ -49,6 +54,7 @@ namespace Yi.Framework.Core
.Build();
//创建任务
var jobDetail = JobBuilder.Create(myClass)
.UsingJobData(new JobDataMap(data))
.WithIdentity(jobKey.Name, jobKey.Group)
.Build();
//将触发器和任务器绑定到调度器中

View File

@@ -5,13 +5,14 @@ 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 HttpJob : IJob
{
private ILogger<VisitJob> _logger;
public HttpJob(ILogger<VisitJob> logger)
private ILogger<HttpJob> _logger;
public HttpJob(ILogger<HttpJob> logger)
{
_logger = logger;
}
@@ -20,7 +21,23 @@ namespace Yi.Framework.Job
{
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}");
});
}
}

View File

@@ -31,13 +31,11 @@ namespace Yi.Framework.Job
{
return Task.Run(() =>
{
_DBWrite.Set<visit>().Add(new visit() { num = visitModel.visitNum, time = DateTime.Now });
_DBWrite.Set<visit>().Add(new visit() { num = JobModel.visitNum, time = DateTime.Now });
_DBWrite.SaveChanges();
_logger.LogWarning("定时任务开始调度:" + nameof(VisitJob) + ":" + DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss") + $":访问总数为:{visitModel.visitNum}");
visitModel.visitNum = 0;
_logger.LogWarning("定时任务开始调度:" + nameof(VisitJob) + ":" + DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss") + $":访问总数为:{JobModel.visitNum}");
JobModel.visitNum = 0;
}
);
}
}