public async void Testhour() { var now = PlanItem.NowTime() + minute2ms; var item = new PlanItem { Message = MessageHelper.Simple("test", "test", "test", "test"), Option = new PlanOption { plan_type = plan_date_type.hour, plan_value = 1, plan_time = now }, RealInfo = new PlanRealInfo { plan_time = now } }; await item.CheckNextTime(); now += hour2ms; var next = PlanItem.FromTime(item.RealInfo.plan_time); Console.WriteLine($"{now}=>{item.RealInfo.plan_time} {next} : {item.RealInfo.plan_state}"); Assert.IsTrue(item.RealInfo.plan_time == now, $"结果时间不同{now}=>{item.RealInfo.plan_time}"); item.RealInfo.exec_num = 1; await item.CheckNextTime(); Assert.IsTrue(item.RealInfo.plan_state == Plan_message_state.close, $"状态错误{Plan_message_state.close}=>{item.RealInfo.plan_state}"); }
public async void TestRepet() { var now = PlanItem.NowTime() + second2ms; var item = new PlanItem { Message = MessageHelper.Simple("test", "test", "test", "test"), Option = new PlanOption { plan_type = plan_date_type.second, plan_value = 1, plan_repet = 30, plan_time = now }, RealInfo = new PlanRealInfo { plan_time = now } }; for (int i = 0; i < 30; i++) { await item.CheckNextTime(); var next = PlanItem.FromTime(item.RealInfo.plan_time); item.RealInfo.exec_num++;//模拟成功 now += second2ms; Console.WriteLine($"{PlanItem.FromTime(now)} => {next} : {item.RealInfo.plan_state}"); Assert.IsTrue(item.RealInfo.plan_state == Plan_message_state.queue, $"状态错误{Plan_message_state.queue}=>{item.RealInfo.plan_state}"); Assert.IsTrue(item.RealInfo.plan_time == now, $"结果时间不同{now}=>{item.RealInfo.plan_time}"); } await item.CheckNextTime(); Console.WriteLine($"{PlanItem.FromTime(now)} => {PlanItem.FromTime(item.RealInfo.plan_time)} : {item.RealInfo.plan_state}"); Assert.IsTrue(item.RealInfo.plan_state == Plan_message_state.close, $"状态错误{Plan_message_state.close}=>{item.RealInfo.plan_state}"); }
public async void Testweek() { var week = new Random(GetHashCode()).Next(0, 7); var item = new PlanItem { Message = MessageHelper.Simple("test", "test", "test", "test"), Option = new PlanOption { plan_type = plan_date_type.week, plan_value = (short)week, plan_time = 1000 }, RealInfo = new PlanRealInfo { plan_time = 0 } }; await item.FirstSave(); await item.CheckNextTime(); var next = PlanItem.FromTime(item.RealInfo.plan_time); Console.WriteLine($"{(DayOfWeek)week}=>{next.DayOfWeek} {next} : {item.RealInfo.plan_state}"); Assert.IsTrue((int)next.DayOfWeek == week, $"结果时间不同{week}=>{(int)next.DayOfWeek}"); item.RealInfo.exec_num = 1; await item.CheckNextTime(); Assert.IsTrue(item.RealInfo.plan_state == Plan_message_state.close, $"状态错误{Plan_message_state.close}=>{item.RealInfo.plan_state}"); }
public async void TestMonth() { var day = (short)new Random(GetHashCode()).Next(0, 32); var item = new PlanItem { Message = MessageHelper.Simple("test", "test", "test", "test"), Option = new PlanOption { plan_type = plan_date_type.month, plan_value = day, plan_time = 10000 }, RealInfo = new PlanRealInfo { plan_time = PlanItem.NowTime() } }; await item.CheckNextTime(); var next = PlanItem.FromTime(item.RealInfo.plan_time); Console.WriteLine($"{day}=>{(int)next.DayOfWeek} {next} : {item.RealInfo.plan_state}"); Assert.IsTrue(next.Day == day, $"结果时间不同{day}=>{next.Day}"); item = new PlanItem { Message = MessageHelper.Simple("test", "test", "test", "test"), Option = new PlanOption { plan_type = plan_date_type.month, plan_value = -31, plan_time = 10000 }, RealInfo = new PlanRealInfo { plan_time = PlanItem.NowTime() } }; await item.CheckNextTime(); next = PlanItem.FromTime(item.RealInfo.plan_time); Console.WriteLine($"{next} : {item.RealInfo.plan_state}"); Assert.IsTrue(next.Day == 1, $"结果时间不同{next.Day}=>1"); item.RealInfo.exec_num = 1; await item.CheckNextTime(); Assert.IsTrue(item.RealInfo.plan_state == Plan_message_state.close, $"状态错误{Plan_message_state.close}=>{item.RealInfo.plan_state}"); }
public async void TestAlwaysSkip() { var now = PlanItem.NowTime() + second2ms; var item = new PlanItem { Message = MessageHelper.Simple("test", "test", "test", "test"), Option = new PlanOption { plan_type = plan_date_type.second, plan_value = 1, plan_repet = -1, plan_time = now, skip_set = 29, }, RealInfo = new PlanRealInfo { plan_time = now } }; DateTime next; for (int i = 0; i < 29; i++) { await item.CheckNextTime(); item.RealInfo.skip_num++;//模拟成功 now += second2ms; next = PlanItem.FromTime(item.RealInfo.plan_time); Console.WriteLine($"{PlanItem.FromTime(now)} => {next} : {item.RealInfo.plan_state} skip:{item.RealInfo.skip_num} exec:{item.RealInfo.exec_num}"); Assert.IsTrue(item.RealInfo.plan_state == Plan_message_state.skip, $"状态错误{Plan_message_state.queue}=>{item.RealInfo.plan_state}"); Assert.IsTrue(item.RealInfo.plan_time == now, $"结果时间不同{now}=>{item.RealInfo.plan_time}"); } for (int i = 0; i < 29; i++) { await item.CheckNextTime(); item.RealInfo.exec_num++;//模拟成功 now += second2ms; next = PlanItem.FromTime(item.RealInfo.plan_time); Console.WriteLine($"{PlanItem.FromTime(now)} => {next} : {item.RealInfo.plan_state} skip:{item.RealInfo.skip_num} exec:{item.RealInfo.exec_num}"); Assert.IsTrue(item.RealInfo.plan_state == Plan_message_state.queue, $"状态错误{Plan_message_state.queue}=>{item.RealInfo.plan_state}"); Assert.IsTrue(item.RealInfo.plan_time == now, $"结果时间不同{now}=>{item.RealInfo.plan_time}"); } }