diff --git a/taskschedule/Tnb.TaskScheduler/Listener/GenerateSpotInspectionPlanTimeWorker.cs b/taskschedule/Tnb.TaskScheduler/Listener/GenerateSpotInspectionPlanTimeWorker.cs new file mode 100644 index 00000000..b124ee33 --- /dev/null +++ b/taskschedule/Tnb.TaskScheduler/Listener/GenerateSpotInspectionPlanTimeWorker.cs @@ -0,0 +1,11 @@ +namespace JNPF.TaskScheduler.Listener +{ + public class GenerateSpotInspectionPlanTimeWorker : ISpareTimeWorker + { + [SpareTime("0 45 14 * * ? *", "生成点巡检计划", ExecuteType = SpareTimeExecuteTypes.Serial,StartNow = false)] + public void GenerateSpotInspectionPlan(SpareTimer timer, long count) + { + Console.WriteLine("hello world"); + } + } +} \ No newline at end of file diff --git a/taskschedule/Tnb.TaskScheduler/TimeTaskService.cs b/taskschedule/Tnb.TaskScheduler/TimeTaskService.cs index 651711b5..fb492e0f 100644 --- a/taskschedule/Tnb.TaskScheduler/TimeTaskService.cs +++ b/taskschedule/Tnb.TaskScheduler/TimeTaskService.cs @@ -377,14 +377,16 @@ public class TimeTaskService : ITimeTaskService, IDynamicApiController, ITransie /// private async Task> GetTaskMethods() { - var taskMethods = await _cacheManager.GetAsync>(CommonConst.CACHEKEYTIMERJOB); - if (taskMethods != null) return taskMethods; + // var taskMethods = await _cacheManager.GetAsync>(CommonConst.CACHEKEYTIMERJOB); + // if (taskMethods != null) return taskMethods; + + List taskMethods = null; // 获取所有本地任务方法,必须有spareTimeAttribute特性 taskMethods = App.EffectiveTypes .Where(u => u.IsClass && !u.IsInterface && !u.IsAbstract && typeof(ISpareTimeWorker).IsAssignableFrom(u)) .SelectMany(u => u.GetMethods(BindingFlags.Public | BindingFlags.Instance) - .Where(m => m.IsDefined(typeof(SpareTimeAttribute), false) && + .Where(m => m.GetCustomAttributes(typeof(SpareTimeAttribute), false).ToString().Contains("SpareTime") && m.GetParameters().Length == 2 && m.GetParameters()[0].ParameterType == typeof(SpareTimer) && m.GetParameters()[1].ParameterType == typeof(long) && m.ReturnType == typeof(void))