QWorker 更新 – TQPlanMask 新增 OnAcceptTime 事件以支持用户自定义的计划任务等更新

【更新说明】

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 两个单元

【特别感谢】

快手、青春

分享到: