【更新说明】
TQPlanMask新增了三个成员:
- OnAcceptTime:用于让用户自行确定某个时间点是否应该执行计划任务作业;
- StartTime:用于确定计划任务作业的起始生效时间
- StopTime:用于确定计划任务作业的结束时间
注意,如果设置了StartTime 和 StopTime,则必需保证 StartTime<StopTime,实际作业的执行区间是 [StartTime,StopTime)。
【示例】
1、创建一个每分钟执行一次的作业,该作业持续时间为 [2015-6-24 , 2015-6-25):
var AMask: TQPlanMask; begin AMask := TQPlanMask.Create('* * * * * A Test Job'); AMask.StartTime:=EncodeDate(2015,6,24); AMask.StopTime:=EncodeDate(2015,6,25); Workers.Plan(DoPlanJob,AMask,nil,True); end;
2、通过事件自定义作业的执行时间,这个作业只在 小时数+分钟数>60 时才会执行:
procedure TForm1.DoPlanTimeCheck(const ASender: PQPlanMask;var Accept: Boolean); var H,N,S,MS:Word; begin DecodeTime(Now,H,N,S,MS); Accept:=(H+N>60); end; .... AMask: TQPlanMask; begin AMask := TQPlanMask.Create; AMask.OnAcceptTime:=DoPlanTimeCheck; Workers.Plan(DoPlanJob,AMask,nil,True); end;
【更新级别】
可选
【影响范围】
QWorker 的计划任务作业,包括 QTimeTypes 和 QWorker 两个单元
【特别感谢】
快手、青春